]> granicus.if.org Git - nethack/commit
fix #H6597 - genocide exploit
authorPatR <rankin@nethack.org>
Sat, 9 Dec 2017 08:36:19 +0000 (00:36 -0800)
committerPatR <rankin@nethack.org>
Sat, 9 Dec 2017 08:36:19 +0000 (00:36 -0800)
commit20accd4bb756cf295ffc119a4e8cca9f511d5651
treec3c68679d362f491d21b6c8dbdbf1a5e10c90c70
parent99f5bbc59edb4ce9e2e6a3cf9bf88d0ab6b1606f
fix #H6597 - genocide exploit

Self-genocide (own role or race) while polymorphed sets u.uhp to -1
so that you'll be killed during rehumanization.  I found a couple
of places which were testing (u.uhp < 1) without checking polymorph
state, and one of those was where monster movement decides whether or
not to attack.  This bug seems to have been present since start of
the second cvs repository, so has been around for quite a long time
without anybody letting on that they'd noticed.  So it probably isn't
a very effective exploit, although it would certainly make ascending
without wearing armor become much more feasible.

There are bound to be other places which examine u.uhp directly
instead of '(Upolyd ? u.mh : u.uhp)' but I only checked m*.c.
doc/fixes36.1
src/mhitu.c
src/monmove.c