Skip to content

Commit f08931f

Browse files
DozerAIUpdate: Add null check for controlling player before accessing player index
1 parent bae4229 commit f08931f

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1074,7 +1074,12 @@ StateReturnType DozerPrimaryIdleState::update( void )
10741074
//
10751075
if( ai->isIdle() && !m_isMarkedAsIdle && !dozer->isEffectivelyDead())
10761076
{
1077-
m_idlePlayerNumber = dozer->getControllingPlayer()->getPlayerIndex();
1077+
Player *controllingPlayer = dozer->getControllingPlayer();
1078+
if( !controllingPlayer )
1079+
{
1080+
return STATE_FAILURE;
1081+
}
1082+
m_idlePlayerNumber = controllingPlayer->getPlayerIndex();
10781083
TheInGameUI->addIdleWorker(getMachineOwner());
10791084
m_isMarkedAsIdle = TRUE;
10801085
getMachineOwner()->setWeaponSetFlag(WEAPONSET_MINE_CLEARING_DETAIL);//maybe go clear some mines, if I feel like it

GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/DozerAIUpdate.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1079,7 +1079,12 @@ StateReturnType DozerPrimaryIdleState::update( void )
10791079
//
10801080
if( ai->isIdle() && !m_isMarkedAsIdle && !dozer->isEffectivelyDead())
10811081
{
1082-
m_idlePlayerNumber = dozer->getControllingPlayer()->getPlayerIndex();
1082+
Player *controllingPlayer = dozer->getControllingPlayer();
1083+
if( !controllingPlayer )
1084+
{
1085+
return STATE_FAILURE;
1086+
}
1087+
m_idlePlayerNumber = controllingPlayer->getPlayerIndex();
10831088
TheInGameUI->addIdleWorker(getMachineOwner());
10841089
m_isMarkedAsIdle = TRUE;
10851090
getMachineOwner()->setWeaponSetFlag(WEAPONSET_MINE_CLEARING_DETAIL);//maybe go clear some mines, if I feel like it

0 commit comments

Comments
 (0)