]> granicus.if.org Git - nethack/commitdiff
null pointer dereference in do_name.c
authornhmall <nhmall@nethack.org>
Tue, 15 Jun 2021 19:49:31 +0000 (15:49 -0400)
committernhmall <nhmall@nethack.org>
Tue, 15 Jun 2021 19:49:31 +0000 (15:49 -0400)
fixes #534

doc/fixes37.0
src/do_name.c

index 8320a3f99d07f9a34ad297096b64151d51f74ca1..3bb4ba3bf564fd1fa28dc697c8f58d0a12f4b784 100644 (file)
@@ -713,6 +713,8 @@ enlightenment/disclosure when wielding two weapons with two-weap skill higher
        than secondary weapon's skill had "with" duplicated in the feedback
 corpse of monster with gender specific names (king vs queen and so forth)
        was always described by the neutral name (ruler and such)
+prevent obj_pmname() from calling mon_pmname(&monst) when monst->data is null
+       to prevent a null pointer dereference
 
 curses: 'msg_window' option wasn't functional for curses unless the binary
        also included tty support
index 9c17550ae12af42303a4d55719337c5ae3709a4e..4ffc9b26662f0c6fa915db9f2deda56c31104955 100644 (file)
@@ -2098,7 +2098,7 @@ mon_pmname(struct monst *mon)
 const char *
 obj_pmname(struct obj *obj)
 {
-    if (has_omonst(obj))
+    if (has_omonst(obj) && OMONST(obj)->data)
         return mon_pmname(OMONST(obj));
 
     if ((obj->otyp == CORPSE || obj->otyp == STATUE || obj->otyp == FIGURINE)