]> granicus.if.org Git - nethack/commitdiff
fix wishing crash
authorPatR <rankin@nethack.org>
Mon, 20 Apr 2020 20:28:43 +0000 (13:28 -0700)
committerPatR <rankin@nethack.org>
Mon, 20 Apr 2020 20:28:43 +0000 (13:28 -0700)
After 05403182ebc542da4bacd716cef408a27372c1ad (I think, possibly the
change to objnam.c which followed that one) from a couple of days ago,
wishing for a monster name dereferenced a Null pointer and crashed.

doc/fixes37.0
src/mondata.c

index 102e6fb53cbee7815c5ad1878c8b363a88b975cf..81979ff62167427ab031cdf32e778b5205cabd79 100644 (file)
@@ -197,6 +197,9 @@ teleport feedback "you materialize at another location" was given too soon
        moving around underwater
 poison gas clouds located over known but unlit pools were visible as known
        clouds but steam clouds in that situation were not
+after the wish parsing change, wishing for "<something of monster>" or for
+       "<monster something>" worked as intended but wishing for "<monster>"
+       (where <monster> used the canonical spelling) triggered a crash
 tty: redraw unexplored locations as S_unexplored rather than <space> after
        map has been partially overwritten by popup menu or text display
 tty: previous change resulted in remnants of previous level being shown on
index c29317550e48655e939b9b1f40753de161f2a0cb..4e0ba2d0a9cbd571d44daa148e432f105ce14f51 100644 (file)
@@ -829,6 +829,7 @@ const char **remainder_p;
         if (m_i_len > len && !strncmpi(mons[i].mname, str, m_i_len)) {
             if (m_i_len == slen) {
                 mntmp = i;
+                len = m_i_len;
                 break; /* exact match */
             } else if (slen > m_i_len
                        && (str[m_i_len] == ' '