Merge 16748 from trunk: Add check for global handles to NtGdiDeleteDC, this prevents applications from destroying DCs that are part of DCEs. Modified: branches/ros-branch-0_2_7/reactos/subsys/win32k/objects/dc.c _____
Modified: branches/ros-branch-0_2_7/reactos/subsys/win32k/objects/dc.c --- branches/ros-branch-0_2_7/reactos/subsys/win32k/objects/dc.c 2005-08-03 17:21:19 UTC (rev 17024) +++ branches/ros-branch-0_2_7/reactos/subsys/win32k/objects/dc.c 2005-08-03 17:24:05 UTC (rev 17025) @@ -924,10 +924,17 @@
{ PDC DCToDelete;
+ if (!GDIOBJ_OwnedByCurrentProcess(DCHandle)) + { + SetLastWin32Error(ERROR_INVALID_HANDLE); + return FALSE; + } + DCToDelete = DC_LockDc(DCHandle); if (DCToDelete == NULL) { - return FALSE; + SetLastWin32Error(ERROR_INVALID_HANDLE); + return FALSE; }
/* First delete all saved DCs */