From d1cae38a371e71a9997f2d73b26a97cc8e8bb2ac Mon Sep 17 00:00:00 2001 From: x64-dev <202863051+x64-dev@users.noreply.github.com> Date: Thu, 3 Sep 2026 21:15:00 +0000 Subject: [PATCH] fix: Prevent null dereference in AITNGuardOuterState update --- Generals/Code/GameEngine/Source/GameLogic/AI/AITNGuard.cpp | 4 ++++ GeneralsMD/Code/GameEngine/Source/GameLogic/AI/AITNGuard.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/Generals/Code/GameEngine/Source/GameLogic/AI/AITNGuard.cpp b/Generals/Code/GameEngine/Source/GameLogic/AI/AITNGuard.cpp index d1ec1c6fc3d..3b0dd2228b1 100644 --- a/Generals/Code/GameEngine/Source/GameLogic/AI/AITNGuard.cpp +++ b/Generals/Code/GameEngine/Source/GameLogic/AI/AITNGuard.cpp @@ -501,6 +501,10 @@ StateReturnType AITNGuardOuterState::onEnter() //-------------------------------------------------------------------------------------- StateReturnType AITNGuardOuterState::update() { + if (m_attackState == nullptr) { + return STATE_SUCCESS; + } + Object *owner = getMachineOwner(); Object* goalObj = m_attackState->getMachineGoalObject(); if (goalObj) diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/AI/AITNGuard.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/AI/AITNGuard.cpp index a475add6e1e..23e2eaabe51 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/AI/AITNGuard.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/AI/AITNGuard.cpp @@ -501,6 +501,10 @@ StateReturnType AITNGuardOuterState::onEnter() //-------------------------------------------------------------------------------------- StateReturnType AITNGuardOuterState::update() { + if (m_attackState == nullptr) { + return STATE_SUCCESS; + } + Object *owner = getMachineOwner(); Object* goalObj = m_attackState->getMachineGoalObject(); if (goalObj)