diff --git a/reactos/dll/directx/ddraw/main/ddraw_main.c b/reactos/dll/directx/ddraw/main/ddraw_main.c index fa9aa2526fc..7f1b2f10108 100644 --- a/reactos/dll/directx/ddraw/main/ddraw_main.c +++ b/reactos/dll/directx/ddraw/main/ddraw_main.c @@ -305,6 +305,11 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE /* setup DDSD */ if (pDDSD->dwFlags & DDSD_PIXELFORMAT) { + if (pDDSD->ddpfPixelFormat.dwSize != sizeof(DDPIXELFORMAT)) + { + /* FIXME relase the memory that we have alloc */ + return DDERR_INVALIDPIXELFORMAT; + } That->lpLcl->dwFlags |= DDRAWISURF_HASPIXELFORMAT; memcpy(&That->lpLcl->lpGbl->ddpfSurface,&pDDSD->ddpfPixelFormat, sizeof(DDPIXELFORMAT)); }