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)
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) {