Avoid buffer overrun in IDirectDraw::GetCaps. Patch by Jérôme Gardou.
CORE-4623 #resolve

svn path=/trunk/; revision=63428
This commit is contained in:
Timo Kreuzer 2014-05-24 09:53:24 +00:00
parent a850037725
commit 229b404fde

View file

@ -101,7 +101,7 @@ Main_DirectDraw_GetCaps( LPDDRAWI_DIRECTDRAW_INT This, LPDDCAPS pDriverCaps,
if (CoreCaps->dwSize == sizeof(DDCORECAPS))
{
memcpy(&myCaps->dwCaps, &CoreCaps->dwCaps, sizeof(DDCAPS_DX3));
memcpy(myCaps, CoreCaps, sizeof(DDCAPS_DX3));
}
myCaps->dwVidMemFree = dwFree;
@ -126,7 +126,7 @@ Main_DirectDraw_GetCaps( LPDDRAWI_DIRECTDRAW_INT This, LPDDCAPS pDriverCaps,
if (CoreCaps->dwSize == sizeof(DDCORECAPS))
{
memcpy(&myCaps->dwCaps, &CoreCaps->dwCaps, sizeof(DDCORECAPS));
memcpy(myCaps, CoreCaps, sizeof(DDCORECAPS));
}
myCaps->dwVidMemFree = dwFree;
@ -152,7 +152,7 @@ Main_DirectDraw_GetCaps( LPDDRAWI_DIRECTDRAW_INT This, LPDDCAPS pDriverCaps,
if (CoreCaps->dwSize == sizeof(DDCORECAPS))
{
memcpy(&myCaps->dwCaps, &CoreCaps->dwCaps, sizeof(DDCORECAPS));
memcpy(myCaps, CoreCaps, sizeof(DDCORECAPS));
}
myCaps->dwVidMemFree = dwFree;
@ -208,7 +208,7 @@ Main_DirectDraw_GetCaps( LPDDRAWI_DIRECTDRAW_INT This, LPDDCAPS pDriverCaps,
if (CoreCaps->dwSize == sizeof(DDCORECAPS))
{
memcpy(&myCaps->dwCaps, &CoreCaps->dwCaps, sizeof(DDCAPS_DX3));
memcpy(myCaps, CoreCaps, sizeof(DDCAPS_DX3));
}
myCaps->dwVidMemFree = dwFree;
@ -233,7 +233,7 @@ Main_DirectDraw_GetCaps( LPDDRAWI_DIRECTDRAW_INT This, LPDDCAPS pDriverCaps,
if (CoreCaps->dwSize == sizeof(DDCORECAPS))
{
memcpy(&myCaps->dwCaps, &CoreCaps->dwCaps, sizeof(DDCORECAPS));
memcpy(myCaps, CoreCaps, sizeof(DDCORECAPS));
}
myCaps->dwVidMemFree = dwFree;
@ -259,7 +259,7 @@ Main_DirectDraw_GetCaps( LPDDRAWI_DIRECTDRAW_INT This, LPDDCAPS pDriverCaps,
if (CoreCaps->dwSize == sizeof(DDCORECAPS))
{
memcpy(&myCaps->dwCaps, &CoreCaps->dwCaps, sizeof(DDCORECAPS));
memcpy(myCaps, CoreCaps, sizeof(DDCORECAPS));
}
myCaps->dwVidMemFree = dwFree;