[ros-diffs] [fireball] 34693: - Revert 20424 and do a proper fix: Check if pool allocation succeeded right after allocation, not at the end of the function, when the pointer has been used quite a few times already.

fireball at svn.reactos.org fireball at svn.reactos.org
Wed Jul 23 17:18:25 CEST 2008


Author: fireball
Date: Wed Jul 23 10:18:25 2008
New Revision: 34693

URL: http://svn.reactos.org/svn/reactos?rev=34693&view=rev
Log:
- Revert 20424 and do a proper fix: Check if pool allocation succeeded right after allocation, not at the end of the function, when the pointer has been used quite a few times already.

Modified:
    trunk/reactos/subsystems/win32/win32k/objects/palobj.c

Modified: trunk/reactos/subsystems/win32/win32k/objects/palobj.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/palobj.c?rev=34693&r1=34692&r2=34693&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/palobj.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/palobj.c [iso-8859-1] Wed Jul 23 10:18:25 2008
@@ -248,6 +248,12 @@
   ExFreePool(palPtr->mapping);
   mapping = ExAllocatePoolWithTag(PagedPool, sizeof(int)*palGDI->NumColors, TAG_PALETTEMAP);
 
+  if (!mapping)
+  {
+      DPRINT1("Failed allocating memory for palette mapping!\n");
+      return 0;
+  }
+
   palPtr->mapping = mapping;
 
   for(uNum += uStart; uStart < uNum; uStart++)
@@ -326,11 +332,7 @@
         }
 
         if( !prevMapping || palPtr->mapping[uStart] != index ) iRemapped++;
-        if (palPtr->mapping != NULL)
-        {
-            palPtr->mapping[uStart] = index;
-        }
-
+        palPtr->mapping[uStart] = index;
   }
   return iRemapped;
 }



More information about the Ros-diffs mailing list