[ros-diffs] [cgutman] 36043: - Make sure memory allocation succeeded

cgutman at svn.reactos.org cgutman at svn.reactos.org
Mon Sep 8 00:28:20 CEST 2008


Author: cgutman
Date: Sun Sep  7 17:28:19 2008
New Revision: 36043

URL: http://svn.reactos.org/svn/reactos?rev=36043&view=rev
Log:
 - Make sure memory allocation succeeded

Modified:
    trunk/reactos/subsystems/win32/win32k/dib/dib16bpp.c
    trunk/reactos/subsystems/win32/win32k/dib/dib32bpp.c
    trunk/reactos/subsystems/win32/win32k/dib/dib8bpp.c
    trunk/reactos/subsystems/win32/win32k/objects/dc.c

Modified: trunk/reactos/subsystems/win32/win32k/dib/dib16bpp.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/dib/dib16bpp.c?rev=36043&r1=36042&r2=36043&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/dib/dib16bpp.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/dib/dib16bpp.c [iso-8859-1] Sun Sep  7 17:28:19 2008
@@ -626,6 +626,13 @@
 
     ScanLineAhead = (PIXEL *)ExAllocatePool(PagedPool, (DestRect->right -
                     DestRect->left) * sizeof(PIXEL));
+  
+    if (!ScanLine || !ScanLineAhead)
+    {
+      if (ScanLine) ExFreePool(ScanLine);
+      if (ScanLineAhead) ExFreePool(ScanLineAhead);
+      return FALSE;
+    }
 
     DestY = DestRect->top;
     SpanIndex = 0;

Modified: trunk/reactos/subsystems/win32/win32k/dib/dib32bpp.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/dib/dib32bpp.c?rev=36043&r1=36042&r2=36043&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/dib/dib32bpp.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/dib/dib32bpp.c [iso-8859-1] Sun Sep  7 17:28:19 2008
@@ -402,6 +402,13 @@
   ScanLine = (PIXEL*)ExAllocatePool(PagedPool, (DestRect->right - DestRect->left) * sizeof(PIXEL));
   ScanLineAhead = (PIXEL *)ExAllocatePool(PagedPool, (DestRect->right - DestRect->left) * sizeof(PIXEL));
 
+  if (!ScanLine || !ScanLineAhead)
+    {
+      if (ScanLine) ExFreePool(ScanLine);
+      if (ScanLineAhead) ExFreePool(ScanLineAhead);
+      return FALSE;
+    }
+
   DestY = DestRect->top;
   SpanIndex = 0;
   while (NumPixels-- > 0) {

Modified: trunk/reactos/subsystems/win32/win32k/dib/dib8bpp.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/dib/dib8bpp.c?rev=36043&r1=36042&r2=36043&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/dib/dib8bpp.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/dib/dib8bpp.c [iso-8859-1] Sun Sep  7 17:28:19 2008
@@ -387,6 +387,13 @@
   ScanLine = (PIXEL*)ExAllocatePool(PagedPool, (DestRect->right - DestRect->left) * sizeof(PIXEL));
   ScanLineAhead = (PIXEL *)ExAllocatePool(PagedPool, (DestRect->right - DestRect->left) * sizeof(PIXEL));
 
+  if (!ScanLine || !ScanLineAhead)
+    {
+      if (ScanLine) ExFreePool(ScanLine);
+      if (ScanLineAhead) ExFreePool(ScanLineAhead);
+      return FALSE;
+    }
+
   DestY = DestRect->top;
   SpanIndex = 0;
   while (NumPixels-- > 0) {

Modified: trunk/reactos/subsystems/win32/win32k/objects/dc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/dc.c?rev=36043&r1=36042&r2=36043&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/dc.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/dc.c [iso-8859-1] Sun Sep  7 17:28:19 2008
@@ -558,8 +558,8 @@
       if (PrimarySurface.pEDDgpl)
       {
           RtlZeroMemory( PrimarySurface.pEDDgpl ,sizeof(EDD_DIRECTDRAW_GLOBAL));
-      }
-      ret = TRUE;
+          ret = TRUE;
+      }
       goto cleanup;
    }
 
@@ -963,6 +963,11 @@
   { // This is a cheesy way to do this.
       PDC dc = DC_LockDc ( hDC );
       defaultDCstate = ExAllocatePoolWithTag(PagedPool, sizeof(DC), TAG_DC);
+      if (!defaultDCstate)
+      {
+          DC_UnlockDc( dc );
+          return NULL;
+      }
       RtlZeroMemory(defaultDCstate, sizeof(DC));
       IntGdiCopyToSaveState(dc, defaultDCstate);
       DC_UnlockDc( dc );



More information about the Ros-diffs mailing list