Another portion of HeapReAlloc fixes.
diff --git a/dlls/setupapi/parser.c b/dlls/setupapi/parser.c
index f829245..9369f21 100644
--- a/dlls/setupapi/parser.c
+++ b/dlls/setupapi/parser.c
@@ -159,10 +159,17 @@
void *new_array;
unsigned int new_count = *count + *count / 2;
if (new_count < 32) new_count = 32;
- if ((new_array = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, array, new_count * elem )))
+
+ if (array)
+ new_array = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, array, new_count * elem );
+ else
+ new_array = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, new_count * elem );
+
+ if (new_array)
*count = new_count;
else
- HeapFree( GetProcessHeap(), 0, array );
+ if (array)
+ HeapFree( GetProcessHeap(), 0, array );
return new_array;
}