Skip to content

Commit 6fd7f0f

Browse files
committed
[GEN][ZH] Fix use of invalid back-buffer surface pointer
By checking the result of GetBackBuffer, passing an invalid (usually uninitialized) pointer is avoided.
1 parent ccf4584 commit 6fd7f0f

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

Generals/Code/Libraries/Source/WWVegas/WW3D2/dx8wrapper.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2405,8 +2405,9 @@ SurfaceClass * DX8Wrapper::_Get_DX8_Back_Buffer(unsigned int num)
24052405

24062406
IDirect3DSurface8 * bb;
24072407
SurfaceClass *surf=NULL;
2408-
DX8CALL(GetBackBuffer(num,D3DBACKBUFFER_TYPE_MONO,&bb));
2409-
if (bb)
2408+
HRESULT hres=S_FALSE;
2409+
DX8CALL_HRES(GetBackBuffer(num,D3DBACKBUFFER_TYPE_MONO,&bb), hres);
2410+
if (hres==D3D_OK)
24102411
{
24112412
surf=NEW_REF(SurfaceClass,(bb));
24122413
bb->Release();

GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8wrapper.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3163,8 +3163,9 @@ SurfaceClass * DX8Wrapper::_Get_DX8_Back_Buffer(unsigned int num)
31633163

31643164
IDirect3DSurface8 * bb;
31653165
SurfaceClass *surf=NULL;
3166-
DX8CALL(GetBackBuffer(num,D3DBACKBUFFER_TYPE_MONO,&bb));
3167-
if (bb)
3166+
HRESULT hres=S_FALSE;
3167+
DX8CALL_HRES(GetBackBuffer(num,D3DBACKBUFFER_TYPE_MONO,&bb), hres);
3168+
if (hres==D3D_OK)
31683169
{
31693170
surf=NEW_REF(SurfaceClass,(bb));
31703171
bb->Release();

0 commit comments

Comments
 (0)