NtGdiDdCreateDirectDrawObject
- add missing error checking for GDIOBJ_AllocObj
- add missing error checking for GDIOBJ_LockObj
Modified: trunk/reactos/subsys/win32k/ntddraw/ddraw.c
_____
Modified: trunk/reactos/subsys/win32k/ntddraw/ddraw.c
--- trunk/reactos/subsys/win32k/ntddraw/ddraw.c 2005-10-05 19:49:37 UTC
(rev 18279)
+++ trunk/reactos/subsys/win32k/ntddraw/ddraw.c 2005-10-05 19:50:48 UTC
(rev 18280)
@@ -50,9 +50,7 @@
DC_UnlockDc(pDC);
return NULL;
}
-
-
BOOL success = pDC->DriverFunctions.EnableDirectDraw(
pDC->PDev, &callbacks, &surface_callbacks,
&palette_callbacks);
@@ -64,7 +62,21 @@
}
HANDLE hDirectDraw =
GDIOBJ_AllocObj(GDI_OBJECT_TYPE_DIRECTDRAW);
+ if (!hDirectDraw)
+ {
+ /* No more memmory */
+ DC_UnlockDc(pDC);
+ return NULL;
+ }
+
PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(hDirectDraw,
GDI_OBJECT_TYPE_DIRECTDRAW);
+ if (!pDirectDraw)
+ {
+ /* invalid handle */
+ DC_UnlockDc(pDC);
+ return NULL;
+ }
+
pDirectDraw->Global.dhpdev = pDC->PDev;
pDirectDraw->Local.lpGbl = &pDirectDraw->Global;
Show replies by date