Prevent a segfault with leashed vanished monster

It's apparently somehow possible to have a leash "attached" to
a monster not present on the current level. Complain instead of
segfaulting. (This is a post-3.6.0 bug)
This commit is contained in:
Pasi Kallinen
2017-01-19 19:46:37 +02:00
parent c6f26c05d7
commit 02195d7351

View File

@@ -912,8 +912,15 @@ unsigned doname_flags;
break;
}
if (obj->otyp == LEASH && obj->leashmon != 0) {
Sprintf(eos(bp), " (attached to %s)",
a_monnam(find_mid(obj->leashmon, FM_FMON)));
struct monst *mlsh = find_mid(obj->leashmon, FM_FMON);
if (!mlsh) {
impossible("leashed monster not on this level");
obj->leashmon = 0;
} else {
Sprintf(eos(bp), " (attached to %s)",
a_monnam(mlsh));
}
break;
}
if (obj->otyp == CANDELABRUM_OF_INVOCATION) {