]> granicus.if.org Git - nethack/commit
fix #H7659 - accessing freed memory by cutworm()
authorPatR <rankin@nethack.org>
Tue, 4 Dec 2018 02:57:01 +0000 (18:57 -0800)
committerPatR <rankin@nethack.org>
Tue, 4 Dec 2018 02:57:01 +0000 (18:57 -0800)
commit285023acf65e36e3ca419a0ebea036323d082725
treefa558cd0a4377c8456f504aaaa499627422051d2
parentf2195c1212ec7f6c39fafc8848de35253e7f0b68
fix #H7659 - accessing freed memory by cutworm()

hmon() can destroy the weapon being used, and known_hitum() would
still pass the pointer to the freed object to cutworm().  Remember the
relevant weapon attribute before using and maybe freeing the object,
then pass that attribute instead of the whole weapon.  Also pass
'more-likely-to-cut' for axes in addition to blades.

thimonst() behaved similarly, although due to much different code
paths none of the objects that might get to hmon() were then passed to
cutworm(), so it wasn't vulnerable.  But pass 'more-likely-to-cut'
for axes instead of for blades when thrown.
doc/fixes36.2
include/extern.h
src/dothrow.c
src/uhitm.c
src/worm.c