From 626c566f0bb7dda3a45cefc2c38363c3bfb844a4 Mon Sep 17 00:00:00 2001 From: "seer-by-sentry[bot]" <157164994+seer-by-sentry[bot]@users.noreply.github.com> Date: Fri, 7 Nov 2025 10:38:05 +0000 Subject: [PATCH] W3DModelDraw: Fix out-of-bounds access in weapon barrel selection --- .../Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp | 2 +- .../Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp index c63a95c3364..4494b0fb3b6 100644 --- a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp +++ b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp @@ -3617,7 +3617,7 @@ Bool W3DModelDraw::handleWeaponFireFX(WeaponSlotType wslot, Int specificBarrelTo Bool handled = false; - if (specificBarrelToUse < 0 || specificBarrelToUse > wbvec.size()) + if (specificBarrelToUse < 0 || specificBarrelToUse >= wbvec.size()) specificBarrelToUse = 0; const ModelConditionInfo::WeaponBarrelInfo& info = wbvec[specificBarrelToUse]; diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp index 1135b17de8f..7fb0fe0873a 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp @@ -3718,7 +3718,7 @@ Bool W3DModelDraw::handleWeaponFireFX(WeaponSlotType wslot, Int specificBarrelTo Bool handled = false; - if (specificBarrelToUse < 0 || specificBarrelToUse > wbvec.size()) + if (specificBarrelToUse < 0 || specificBarrelToUse >= wbvec.size()) specificBarrelToUse = 0; const ModelConditionInfo::WeaponBarrelInfo& info = wbvec[specificBarrelToUse];