View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000431 | LDMud 3.3 | Runtime | public | 2006-01-06 16:49 | 2018-01-29 21:57 |
Reporter | Gnomi | Assigned To | |||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | i686 | OS | Debian GNU/Linux | OS Version | 3.1 |
Product Version | 3.3.712 | ||||
Fixed in Version | 3.3.713 | ||||
Summary | 0000431: remove_interactive clears current_object, which results in a segfault | ||||
Description | Hi, In comm_fatal() remove_interactive() is called. remove_interactive() sets current_object to NULL, but comm_fatal() lets the current program continue with its execution and many functions assume that during the execution of a program current_object points to a real object and will thus crash with a segfault. (comm_fatal() was called because of a message that was too long.) So I think, remove_interactive() should restore the previous current_object instead of setting it to NULL. Happy New Year! Gnomi | ||||
Tags | No tags attached. | ||||
Attached Files | remove_interactive.diff (690 bytes)
Index: trunk/src/comm.c =================================================================== --- trunk/src/comm.c (Revision 2255) +++ trunk/src/comm.c (Arbeitskopie) @@ -3470,6 +3470,7 @@ { object_t *save = command_giver; + object_t *curobj_save = current_object; int i; interactive_t *interactive; int save_privilege; @@ -3636,7 +3637,8 @@ free_object(ob, "remove_interactive"); command_giver = check_object(save); - current_object = NULL; + current_object = curobj_save; /* No check_object, because there may + be execution going on. */ malloc_privilege = save_privilege; } /* remove_interactive() */ | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2006-01-06 16:49 | Gnomi | New Issue | |
2006-02-17 01:47 | Gnomi | File Added: remove_interactive.diff | |
2006-02-17 01:50 | Gnomi | Note Added: 0000477 | |
2006-02-21 00:18 |
|
Status | new => resolved |
2006-02-21 00:18 |
|
Fixed in Version | => 3.3.713 |
2006-02-21 00:18 |
|
Resolution | open => fixed |
2006-02-21 00:18 |
|
Assigned To | => lars |
2006-02-21 00:18 |
|
Note Added: 0000478 | |
2007-10-06 19:55 |
|
Status | resolved => closed |
2010-11-16 09:42 |
|
Source_changeset_attached | => ldmud.git master a9e3f7b9 |
2010-11-16 09:42 |
|
Source_changeset_attached | => ldmud.git master-3.2 38871504 |
2018-01-29 18:59 |
|
Source_changeset_attached | => ldmud.git master a9e3f7b9 |
2018-01-29 18:59 |
|
Source_changeset_attached | => ldmud.git master-3.2 38871504 |
2018-01-29 21:57 |
|
Source_changeset_attached | => ldmud.git master a9e3f7b9 |
2018-01-29 21:57 |
|
Source_changeset_attached | => ldmud.git master-3.2 38871504 |