From f720931e27869c9a6c214c00aeaa1ef21649ddf2 Mon Sep 17 00:00:00 2001 From: "seer-by-sentry[bot]" <157164994+seer-by-sentry[bot]@users.noreply.github.com> Date: Mon, 10 Nov 2025 18:01:47 +0000 Subject: [PATCH] HeightMap: Add safety check for vertex buffer arrays before access --- .../Source/W3DDevice/GameClient/HeightMap.cpp | 5 +++++ .../Source/W3DDevice/GameClient/HeightMap.cpp | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp index dcdd550caac..d290263dec8 100644 --- a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp +++ b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp @@ -1154,6 +1154,11 @@ Int HeightMapRenderObjClass::updateBlock(Int x0, Int y0, Int x1, Int y1, WorldH REF_PTR_SET(m_stageOneTexture, pMap->getAlphaTerrainTexture()); } + // Validate vertex buffer arrays before access to prevent race condition during resource cleanup + if (!m_vertexBufferTiles || !m_vertexBufferBackup) { + return -1; + } + Int i,j; DX8VertexBufferClass **pVB; Int originX,originY; diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp index b00eb8bd83e..6602d8aa293 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp @@ -1024,6 +1024,11 @@ Int HeightMapRenderObjClass::updateBlock(Int x0, Int y0, Int x1, Int y1, WorldH REF_PTR_SET(m_stageOneTexture, pMap->getAlphaTerrainTexture()); } + // Validate vertex buffer arrays before access to prevent race condition during resource cleanup + if (!m_vertexBufferTiles || !m_vertexBufferBackup) { + return -1; + } + Int i,j; DX8VertexBufferClass **pVB; Int originX,originY;