View Issue Details

IDProjectCategoryView StatusLast Update
0000782LDMud 3.6Runtimepublic2022-01-09 20:29
ReporterGnomi Assigned ToGnomi  
PrioritynormalSeveritycrashReproducibilityalways
Status resolvedResolutionfixed 
Platformi686OSDebian GNU/LInuxOS Version5.0
Fixed in Version3.6.5 
Summary0000782: Closures for simul-efuns with an index > 2047 crash the driver
DescriptionFor efun, operator or simul-efun closures the efun, operator resp. simul-efun index is stored as the secondary type information. For each of these three types there are 2048 values reserved.

For simul-efuns with an index beyond 2047 closures with illegal secondary type information will be created resulting in a crash.

One solution would be to create alien lfun closures for such simul-efuns instead. As another solution the simul-efun index could be moved into the .u value (but then we would need to store the object pointer and the simul-efun index which wouldn't fit into a p_int, so we would need to allocate another memory block for that).
TagsNo tags attached.

Activities

Gnomi

2011-04-28 14:18

manager   ~0002050

Third solution: Give some more values to simul-efuns (e.g. 20480) and throw a warning when this limit is reached.

zesstra

2012-12-05 19:28

administrator   ~0002165

Maybe discard any simul-efuns once this higher limit is reached with a warning? Better than crashing...
BTW: do private lfuns in simul_efun.c count against this limit? (My guess is no, but I am not sure).

Issue History

Date Modified Username Field Change
2011-04-28 14:04 Gnomi New Issue
2011-04-28 14:18 Gnomi Note Added: 0002050
2012-12-05 19:28 zesstra Note Added: 0002165
2021-04-16 19:48 zesstra Project LDMud => LDMud 3.6
2021-05-24 18:04 Gnomi Assigned To => Gnomi
2021-05-24 18:04 Gnomi Status new => assigned
2022-01-09 20:29 Gnomi Status assigned => resolved
2022-01-09 20:29 Gnomi Resolution open => fixed
2022-01-09 20:29 Gnomi Fixed in Version => 3.6.5