From 83540eca559351b49edc48df50127cf990c2599f Mon Sep 17 00:00:00 2001 From: "seer-by-sentry[bot]" <157164994+seer-by-sentry[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 05:42:01 +0000 Subject: [PATCH] Fix: Prevent null dereference for object template in script conditions --- .../Source/GameLogic/ScriptEngine/ScriptConditions.cpp | 4 ++++ .../Source/GameLogic/ScriptEngine/ScriptConditions.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/Generals/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptConditions.cpp b/Generals/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptConditions.cpp index b9d68127ad4..c29299e530d 100644 --- a/Generals/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptConditions.cpp +++ b/Generals/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptConditions.cpp @@ -490,6 +490,10 @@ Bool ScriptConditions::evaluatePlayerHasUnitTypeInArea(Condition *pCondition, Pa continue; } + if (!pObj->getTemplate()) { + continue; + } + if (types.m_types->isInSet(pObj->getTemplate())) { if (pObj->isInside(pTrig)) { diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptConditions.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptConditions.cpp index bd8862867be..3c6dc08e2d0 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptConditions.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptConditions.cpp @@ -490,6 +490,10 @@ Bool ScriptConditions::evaluatePlayerHasUnitTypeInArea(Condition *pCondition, Pa continue; } + if (!pObj->getTemplate()) { + continue; + } + if (types.m_types->isInSet(pObj->getTemplate())) { if (pObj->isInside(pTrig)) {