Swap arguments of LocalAlloc and only update Malloc32 block on successful
authorGé van Geldorp <ge@gse.nl>
Sat, 17 Jan 2004 02:21:42 +0000 (02:21 +0000)
committerGé van Geldorp <ge@gse.nl>
Sat, 17 Jan 2004 02:21:42 +0000 (02:21 +0000)
allocation. Fixes bug #154.

svn path=/trunk/; revision=7707

reactos/lib/ole32/ifs.c

index f4e7c48..7b03600 100644 (file)
@@ -73,10 +73,16 @@ static CRITICAL_SECTION IMalloc32_SpyCS = { &critsect_debug, -1, 0, 0, 0, 0 };
 /* resize the old table */
 static int SetSpyedBlockTableLength ( int NewLength )
 {
-       if (!Malloc32.SpyedBlocks) Malloc32.SpyedBlocks = (LPVOID*)LocalAlloc(NewLength, GMEM_ZEROINIT);
-        else Malloc32.SpyedBlocks = (LPVOID*)LocalReAlloc((HLOCAL)Malloc32.SpyedBlocks, NewLength, GMEM_ZEROINIT);
-        Malloc32.SpyedBlockTableLength = NewLength;
-        return Malloc32.SpyedBlocks ? 1 : 0;
+       LPVOID *NewSpyedBlocks;
+
+       if (!Malloc32.SpyedBlocks) NewSpyedBlocks = (LPVOID*)LocalAlloc(GMEM_ZEROINIT, NewLength);
+        else NewSpyedBlocks = (LPVOID*)LocalReAlloc((HLOCAL)Malloc32.SpyedBlocks, NewLength, GMEM_ZEROINIT);
+       if (NewSpyedBlocks) {
+               Malloc32.SpyedBlocks = NewSpyedBlocks;
+               Malloc32.SpyedBlockTableLength = NewLength;
+       }
+
+       return NewSpyedBlocks ? 1 : 0;
 }
 
 /* add a location to the table */