From bdaa51a689e34bb0dcef3497dc951711e5fb84bf Mon Sep 17 00:00:00 2001 From: PatR Date: Fri, 13 Jan 2023 23:55:37 -0800 Subject: [PATCH] another static analyzer bit - cast_protection() The code tested u.uswallow and then accessed u.ustuck. Under normal circumstances that works fine but it could be a problem if the two fields got out of synch. This ought to fix the analyzer complaint and avoid any trouble with mondata access. --- src/spell.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/spell.c b/src/spell.c index f4c2e8a02..a481aea86 100644 --- a/src/spell.c +++ b/src/spell.c @@ -858,11 +858,11 @@ cast_protection(void) struct permonst *pm = u.ustuck ? u.ustuck->data : 0; rmtyp = levl[u.ux][u.uy].typ; - atmosphere = u.uswallow + atmosphere = (pm && u.uswallow) ? ((pm == &mons[PM_FOG_CLOUD]) ? "mist" - : is_whirly(u.ustuck->data) ? "maelstrom" + : is_whirly(pm) ? "maelstrom" : enfolds(pm) ? "folds" - : is_animal(u.ustuck->data) ? "maw" + : is_animal(pm) ? "maw" : "ooze") : (u.uinwater ? hliquid("water") : (rmtyp == CLOUD) ? "cloud" -- 2.49.0