nhmall
4ede5f1cd4
Use-after-free with engulfer in xkilled #938
...
If you were on a level teleporter, the spoteffects() call after
the hero gets expelled could end up going to a new level and
freeing all the monst chains from the level you were originally
engulfed on.
#0 0xba0507 in free
#1 0x87feda in dealloc_monst src/mon.c:2369
#2 0x880a02 in dmonsfree src/mon.c:2194
#3 0x9a7aa2 in savelev_core src/save.c:507
#4 0x9a7a21 in savelev src/save.c:466
#5 0x71eb9d in goto_level src/do.c:1483
#6 0x71833f in deferred_goto src/do.c:1903
#7 0xa2533f in level_tele src/teleport.c:1117
#8 0xa2567b in level_tele_trap src/teleport.c:1198
#9 0xa5c007 in trapeffect_level_telep src/trap.c:1861
#10 0xa5f856 in trapeffect_selector src/trap.c:2497
#11 0xa47497 in dotrap src/trap.c:2586
#12 0x7d669b in spoteffects src/hack.c:2859
#13 0x89d495 in xkilled src/mon.c:3187
The latter parts of xkilled() after the spoteffects() call would
then attempt to dereference the free'd monst pointer.
Save a copy of the monst struct prior to spoteffects() if you were
expelled, then point at the reference copy afterwards.
Resolves #938
2022-12-01 03:48:11 -05:00
..
2022-02-04 09:41:30 -05:00
2022-02-25 10:39:45 -08:00
2022-11-29 21:53:21 -05:00
2022-11-19 00:49:11 -08:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-10-26 14:21:23 -04:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-30 17:34:00 -08:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-10-29 10:54:25 -04:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-09-06 10:00:07 -04:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-30 12:54:26 -08:00
2022-11-29 21:53:21 -05:00
2022-11-23 17:49:55 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-09-19 17:32:42 -04:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-23 17:49:55 -05:00
2022-11-29 21:53:21 -05:00
2022-11-30 14:54:05 -08:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-12-01 03:48:11 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-05-07 10:25:13 -04:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-09-13 10:27:53 -07:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-08-26 12:43:40 +03:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-19 00:49:11 -08:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-18 17:54:17 -08:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2021-01-26 21:06:16 -05:00
2022-11-30 14:49:11 -08:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00
2022-11-29 21:53:21 -05:00