Handle failure of EngLockSurface as well
authorGregor Schneider <grschneider@gmail.com>
Sun, 16 Aug 2009 20:11:31 +0000 (20:11 +0000)
committerGregor Schneider <grschneider@gmail.com>
Sun, 16 Aug 2009 20:11:31 +0000 (20:11 +0000)
svn path=/trunk/; revision=42745

reactos/subsystems/win32/win32k/eng/engmisc.c

index 183e010..ed45e5b 100644 (file)
@@ -76,6 +76,11 @@ IntEngEnter(PINTENG_ENTER_LEAVE EnterLeave,
       }
 
     *ppsoOutput = EngLockSurface((HSURF)EnterLeave->OutputBitmap);
+    if (*ppsoOutput == NULL)
+    {
+      EngDeleteSurface((HSURF)EnterLeave->OutputBitmap);
+      return FALSE;
+    }
 
     EnterLeave->DestRect.left = 0;
     EnterLeave->DestRect.top = 0;
@@ -105,9 +110,9 @@ IntEngEnter(PINTENG_ENTER_LEAVE EnterLeave,
     EnterLeave->TrivialClipObj = EngCreateClip();
     if (EnterLeave->TrivialClipObj == NULL)
     {
-        EngUnlockSurface(*ppsoOutput);
-        EngDeleteSurface((HSURF)EnterLeave->OutputBitmap);
-        return FALSE;
+      EngUnlockSurface(*ppsoOutput);
+      EngDeleteSurface((HSURF)EnterLeave->OutputBitmap);
+      return FALSE;
     }
     EnterLeave->TrivialClipObj->iDComplexity = DC_TRIVIAL;
     if (ClippedDestRect.left < (*ppsoOutput)->sizlBitmap.cx &&