From 78a727e9cbad9a479d7d4c74bc1245e2462b049c Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Thu, 8 Feb 2024 05:18:54 -0700 Subject: [PATCH] Guard against more unsafe accesses to P_DamageMobj source --- src/p_inter.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/p_inter.c b/src/p_inter.c index b19e03aa1..e31874134 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -2698,7 +2698,11 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da if (damagetype != DMG_SPECTATOR && target->player && target->player->spectator) return false; - if (!P_MobjWasRemoved(source) && source->player && source->player->spectator) + // source is checked without a removal guard in so many places that it's genuinely less work to do it here. + if (source && P_MobjWasRemoved(source)) + source = NULL; + + if (source && source->player && source->player->spectator) return false; if (((damagetype & DMG_TYPEMASK) == DMG_STING)