From d36da2336cdbd74ebd3d5910080a2e8c5a3a5d30 Mon Sep 17 00:00:00 2001 From: Dmitry Gorbachev Date: Tue, 29 May 2007 13:36:03 +0000 Subject: [PATCH] Fix bug #2267. svn path=/trunk/; revision=26937 --- reactos/dll/directx/ddraw/Ddraw/ddraw_main.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c b/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c index 103d46c6674..31422d91c6f 100644 --- a/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c +++ b/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c @@ -207,15 +207,20 @@ Main_DirectDraw_CreateSurface (LPDIRECTDRAW iface, LPDDSURFACEDESC pDDSD, // EnterCriticalSection(&ddcs); _SEH_TRY { - if (pDDSD->dwSize != sizeof(DDSURFACEDESC)) + if (pDDSD->dwSize == sizeof(DDSURFACEDESC)) { - return DDERR_INVALIDPARAMS; + CopyDDSurfDescToDDSurfDesc2(&dd_desc_v2, (LPDDSURFACEDESC)pDDSD); + ret = Internal_CreateSurface((LPDDRAWI_DIRECTDRAW_INT)iface, + &dd_desc_v2, + (LPDIRECTDRAWSURFACE7 *)ppSurf, + pUnkOuter); + } + else + { + ret = DDERR_INVALIDPARAMS; } - - CopyDDSurfDescToDDSurfDesc2(&dd_desc_v2, (LPDDSURFACEDESC)pDDSD); - ret = Internal_CreateSurface( (LPDDRAWI_DIRECTDRAW_INT)iface,&dd_desc_v2, (LPDIRECTDRAWSURFACE7 *)ppSurf,pUnkOuter); } - _SEH_HANDLE + _SEH_HANDLE { ret = DDERR_GENERIC; } @@ -236,7 +241,7 @@ Main_DirectDraw_CreateSurface4(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD, _SEH_TRY { ret = Internal_CreateSurface( (LPDDRAWI_DIRECTDRAW_INT)iface,pDDSD, ppSurf,pUnkOuter); - } + } _SEH_HANDLE { ret = DDERR_GENERIC;