changeset 314:2f0eb38da609

Advanced Rogue 7: fix a crash when casting magic missile. do_zap() dereferenced a struct object pointer while ignoring the result of a NULL check. XRogue had the same problem, though triggering it was unlikely, since XRogue does not include a magic missile spell. Reported by John Harris of @Play.
author John "Elwin" Edwards
date Thu, 21 Oct 2021 21:00:15 -0400
parents 2f75940cc544
children ad2570b5b21f
files arogue7/sticks.c xrogue/sticks.c
diffstat 2 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/arogue7/sticks.c	Tue Oct 19 20:39:00 2021 -0400
+++ b/arogue7/sticks.c	Thu Oct 21 21:00:15 2021 -0400
@@ -309,7 +309,7 @@
 
 	    if (!obj)
 		dice = zapper->t_stats.s_lvl;
-	    if (obj->o_type == RELIC)
+	    else if (obj->o_type == RELIC)
 		 dice = 15;
 	    else if (EQUAL(ws_type[which], "staff"))
 		 dice = 10;
--- a/xrogue/sticks.c	Tue Oct 19 20:39:00 2021 -0400
+++ b/xrogue/sticks.c	Thu Oct 21 21:00:15 2021 -0400
@@ -323,7 +323,7 @@
 
             if (!obj)
                 dice = zapper->t_stats.s_lvl;
-            if (obj->o_type == RELIC)
+            else if (obj->o_type == RELIC)
                  dice = 15;
             else if (EQUAL(ws_type[which], "staff"))
                  dice = 10;