View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000837 | LDMud 3.5 | Implementation | public | 2015-01-08 20:33 | 2018-01-30 03:59 |
Reporter | zesstra | Assigned To | zesstra | ||
Priority | urgent | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | x86_64 | OS | MacOS X | OS Version | 10.9.x |
Product Version | 3.5.0 | ||||
Target Version | 3.5.0 | Fixed in Version | 3.5.0 | ||
Summary | 0000837: struct_epilog(): crash updating function return types when encountering functions without return type | ||||
Description | When struct_epilog() tries to update function return values it accesses them without checking if the function actually was compiled with types. 5628 if (f->type->t_class == TCLASS_STRUCT (lldb) print f->type (lpctype_t *) $1 = 0x0000000000000000 Nastingly enough this does only occur when recompiling such a program the second time... ;-) | ||||
Steps To Reproduce | Loading stest1 crashes the driver reliably: > stest1.c void create() { object o = load_object("/players/zesstra/stest2"); destruct(o); load_object("/players/zesstra/stest2"); } > stest2.c struct XXX { }; get() {;} | ||||
Tags | No tags attached. | ||||
|
After discussing with Gnomi: it seems only the function return values can have NULL as type. This requires special care for them and make the code harder to read and a lot more error-prone. We think the best is to always store a type. If we don't one from LPC source, we use TYPE_ANY. |
|
Fix committed in revision c888b7d2a8038d4cb2013e1dbaabb03a4e277627 to master branch (see changeset 976 for details). Thank you for reporting! |
|
Fix committed in revision c888b7d2a8038d4cb2013e1dbaabb03a4e277627 to master branch (see changeset 1417 for details). Thank you for reporting! |
|
Fix committed in revision c888b7d2a8038d4cb2013e1dbaabb03a4e277627 to master branch (see changeset 2745 for details). Thank you for reporting! |
|
Fix committed in revision c888b7d2a8038d4cb2013e1dbaabb03a4e277627 to master branch (see changeset 3830 for details). Thank you for reporting! |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-01-08 20:33 | zesstra | New Issue | |
2015-01-08 20:33 | zesstra | Description Updated | |
2015-01-08 21:24 | zesstra | Note Added: 0002242 | |
2015-01-10 12:46 | zesstra | Assigned To | => zesstra |
2015-01-10 12:46 | zesstra | Status | new => assigned |
2015-02-01 19:03 | zesstra | Source_changeset_attached | => ldmud.git master c888b7d2 |
2015-02-01 19:03 | zesstra | Note Added: 0002245 | |
2015-02-01 19:03 | zesstra | Status | assigned => resolved |
2015-02-01 19:03 | zesstra | Resolution | open => fixed |
2015-02-01 19:34 | zesstra | Fixed in Version | => 3.5.0 |
2018-01-29 18:59 | zesstra | Source_changeset_attached | => ldmud.git master c888b7d2 |
2018-01-29 18:59 | zesstra | Note Added: 0002312 | |
2018-01-29 21:57 | zesstra | Source_changeset_attached | => ldmud.git master c888b7d2 |
2018-01-29 21:57 | zesstra | Note Added: 0002363 | |
2018-01-30 03:59 | zesstra | Source_changeset_attached | => ldmud.git master c888b7d2 |
2018-01-30 03:59 | zesstra | Note Added: 0002414 |