From 1dd0499e897d63c932389466f3f22ba1d9b1b708 Mon Sep 17 00:00:00 2001 From: pjgat09 Date: Sat, 23 Aug 2014 21:58:37 +0000 Subject: [PATCH] D3D8Wrapper: Avoid dereferencing null pointers --- .../Direct3DDevice8Functions.cpp | 93 ++++++++++++++++-- output/dll/d3d8.dll | Bin 19968 -> 105984 bytes 2 files changed, 84 insertions(+), 9 deletions(-) diff --git a/libmupen64plus/D3D8Interceptor/Direct3DDevice8Functions.cpp b/libmupen64plus/D3D8Interceptor/Direct3DDevice8Functions.cpp index 72a962cde6..90dd57528c 100644 --- a/libmupen64plus/D3D8Interceptor/Direct3DDevice8Functions.cpp +++ b/libmupen64plus/D3D8Interceptor/Direct3DDevice8Functions.cpp @@ -99,7 +99,14 @@ extern "C" STDMETHODIMP D3D8Wrapper::IDirect3DDevice8::SetCursorProperties(UINT XHotSpot,UINT YHotSpot,D3D8Wrapper::IDirect3DSurface8* pCursorBitmap) { LOG("IDirect3DDevice8::SetCursorProperties( " << XHotSpot << " , " << YHotSpot << " , " << pCursorBitmap << " )\n"); - return m_pDevice->SetCursorProperties(XHotSpot,YHotSpot,pCursorBitmap->GetSurface()); + if (pCursorBitmap == NULL) + { + return m_pDevice->SetCursorProperties(XHotSpot,YHotSpot,NULL); + } + else + { + return m_pDevice->SetCursorProperties(XHotSpot,YHotSpot,pCursorBitmap->GetSurface()); + } } STDMETHODIMP_(void) D3D8Wrapper::IDirect3DDevice8::SetCursorPosition(int X,int Y,DWORD Flags) @@ -317,25 +324,72 @@ extern "C" STDMETHODIMP D3D8Wrapper::IDirect3DDevice8::CopyRects(D3D8Wrapper::IDirect3DSurface8* pSourceSurface,CONST RECT* pSourceRectsArray,UINT cRects,D3D8Wrapper::IDirect3DSurface8* pDestinationSurface,CONST POINT* pDestPointsArray) { LOG("IDirect3DDevice8::CopyRects( " << pSourceSurface << " , " << pSourceRectsArray << " , " << cRects << " , " << pDestinationSurface << " , " << pDestPointsArray << " )\n"); - - if (pSourceSurface->m_ulRef == 0 || (pSourceSurface->GetSurface()) == (pDestinationSurface->GetSurface())) + + D3D8Base::IDirect3DSurface8* source; + if (pSourceSurface == NULL) + { + source = NULL; + } + else + { + source = pSourceSurface->GetSurface(); + } + + D3D8Base::IDirect3DSurface8* destination; + if (pDestinationSurface == NULL) + { + destination = NULL; + } + else + { + destination = pDestinationSurface->GetSurface(); + } + + if (pSourceSurface->m_ulRef == 0 || source == destination) { return D3DERR_INVALIDCALL; } - return m_pDevice->CopyRects(pSourceSurface->GetSurface(),pSourceRectsArray,cRects,pDestinationSurface->GetSurface(),pDestPointsArray); + return m_pDevice->CopyRects(source,pSourceRectsArray,cRects,destination,pDestPointsArray); } STDMETHODIMP D3D8Wrapper::IDirect3DDevice8::UpdateTexture(D3D8Wrapper::IDirect3DBaseTexture8* pSourceTexture,D3D8Wrapper::IDirect3DBaseTexture8* pDestinationTexture) { LOG("IDirect3DDevice8::UpdateTexture( " << pSourceTexture << " , " << pDestinationTexture << " )\n"); - return m_pDevice->UpdateTexture(pSourceTexture->GetBaseTexture(),pDestinationTexture->GetBaseTexture()); + D3D8Base::IDirect3DBaseTexture8* source; + if (pSourceTexture == NULL) + { + source = NULL; + } + else + { + source = pSourceTexture->GetBaseTexture(); + } + + D3D8Base::IDirect3DBaseTexture8* destination; + if (pDestinationTexture == NULL) + { + destination = NULL; + } + else + { + destination = pDestinationTexture->GetBaseTexture(); + } + + return m_pDevice->UpdateTexture(source,destination); } STDMETHODIMP D3D8Wrapper::IDirect3DDevice8::GetFrontBuffer(D3D8Wrapper::IDirect3DSurface8* pDestSurface) { LOG("IDirect3DDevice8::GetFrontBuffer( " << pDestSurface << " )\n"); - return m_pDevice->GetFrontBuffer(pDestSurface->GetSurface()); + if (pDestSurface == NULL) + { + return m_pDevice->GetFrontBuffer(NULL); + } + else + { + return m_pDevice->GetFrontBuffer(pDestSurface->GetSurface()); + } } STDMETHODIMP D3D8Wrapper::IDirect3DDevice8::SetRenderTarget(D3D8Wrapper::IDirect3DSurface8* pRenderTarget,D3D8Wrapper::IDirect3DSurface8* pNewZStencil) @@ -656,7 +710,14 @@ extern "C" STDMETHODIMP D3D8Wrapper::IDirect3DDevice8::ProcessVertices(UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,D3D8Wrapper::IDirect3DVertexBuffer8* pDestBuffer,DWORD Flags) { LOG("IDirect3DDevice8::ProcessVertices( " << SrcStartIndex << " , " << DestIndex << " , " << VertexCount << " , " << pDestBuffer << " , " << Flags << " )\n"); - return m_pDevice->ProcessVertices(SrcStartIndex,DestIndex,VertexCount,pDestBuffer->GetVertexBuffer(),Flags); + if (pDestBuffer == NULL) + { + return m_pDevice->ProcessVertices(SrcStartIndex,DestIndex,VertexCount,NULL,Flags); + } + else + { + return m_pDevice->ProcessVertices(SrcStartIndex,DestIndex,VertexCount,pDestBuffer->GetVertexBuffer(),Flags); + } } STDMETHODIMP D3D8Wrapper::IDirect3DDevice8::CreateVertexShader(CONST DWORD* pDeclaration,CONST DWORD* pFunction,DWORD* pHandle,DWORD Usage) @@ -710,7 +771,14 @@ extern "C" STDMETHODIMP D3D8Wrapper::IDirect3DDevice8::SetStreamSource(UINT StreamNumber,D3D8Wrapper::IDirect3DVertexBuffer8* pStreamData,UINT Stride) { LOG("IDirect3DDevice8::SetStreamSource( " << StreamNumber << " , " << pStreamData << " , " << Stride << " )\n"); - return m_pDevice->SetStreamSource(StreamNumber,pStreamData->GetVertexBuffer(),Stride); + if (pStreamData == NULL) + { + return m_pDevice->SetStreamSource(StreamNumber,NULL,Stride); + } + else + { + return m_pDevice->SetStreamSource(StreamNumber,pStreamData->GetVertexBuffer(),Stride); + } } STDMETHODIMP D3D8Wrapper::IDirect3DDevice8::GetStreamSource(UINT StreamNumber,D3D8Wrapper::IDirect3DVertexBuffer8** ppStreamData,UINT* pStride) @@ -731,7 +799,14 @@ extern "C" STDMETHODIMP D3D8Wrapper::IDirect3DDevice8::SetIndices(D3D8Wrapper::IDirect3DIndexBuffer8* pIndexData,UINT BaseVertexIndex) { LOG("IDirect3DDevice8::SetIndices( " << pIndexData << " , " << BaseVertexIndex << " )\n"); - return m_pDevice->SetIndices(pIndexData->GetIndexBuffer(),BaseVertexIndex); + if (pIndexData == NULL) + { + return m_pDevice->SetIndices(NULL,BaseVertexIndex); + } + else + { + return m_pDevice->SetIndices(pIndexData->GetIndexBuffer(),BaseVertexIndex); + } } STDMETHODIMP D3D8Wrapper::IDirect3DDevice8::GetIndices(D3D8Wrapper::IDirect3DIndexBuffer8** ppIndexData,UINT* pBaseVertexIndex) diff --git a/output/dll/d3d8.dll b/output/dll/d3d8.dll index 6d5a97aed9214f332677182dbef29b93a99b18a8..2b4b1e0e70f2aeee2796758e4381fd1bbac280f5 100644 GIT binary patch literal 105984 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

JxRd)@8knF*+SbhG-lrw4a7E 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 YazA|cG(6G_FC+4wu0L7e-;)LYFG|&JQvd(}