Check for failed allocations. Spotted by Martin Bealby.
[reactos.git] / reactos / lib / user32 / windows / prop.c
index 6ba07a3..ba76be4 100644 (file)
@@ -70,6 +70,11 @@ EnumPropsA(HWND hWnd, PROPENUMPROCA lpEnumFunc)
   if(Count > 0)
   {
     pli = RtlAllocateHeap(GetProcessHeap(), 0, Count);
+    if (pli == NULL)
+    {
+      SetLastError(ERROR_OUTOFMEMORY);
+      return -1;
+    }
 
     Status = NtUserBuildPropList(hWnd, (LPVOID)pli, Count, &Count);
     if(!NT_SUCCESS(Status))
@@ -132,6 +137,11 @@ EnumPropsExA(HWND hWnd, PROPENUMPROCEXA lpEnumFunc, LPARAM lParam)
   if(Count > 0)
   {
     pli = RtlAllocateHeap(GetProcessHeap(), 0, Count);
+    if (pli == NULL)
+    {
+      SetLastError(ERROR_OUTOFMEMORY);
+      return -1;
+    }
 
     Status = NtUserBuildPropList(hWnd, (LPVOID)pli, Count, &Count);
     if(!NT_SUCCESS(Status))
@@ -194,6 +204,11 @@ EnumPropsExW(HWND hWnd, PROPENUMPROCEXW lpEnumFunc, LPARAM lParam)
   if(Count > 0)
   {
     pli = RtlAllocateHeap(GetProcessHeap(), 0, Count);
+    if (pli == NULL)
+    {
+      SetLastError(ERROR_OUTOFMEMORY);
+      return -1;
+    }
 
     Status = NtUserBuildPropList(hWnd, (LPVOID)pli, Count, &Count);
     if(!NT_SUCCESS(Status))
@@ -256,6 +271,11 @@ EnumPropsW(HWND hWnd, PROPENUMPROCW lpEnumFunc)
   if(Count > 0)
   {
     pli = RtlAllocateHeap(GetProcessHeap(), 0, Count);
+    if (pli == NULL)
+    {
+      SetLastError(ERROR_OUTOFMEMORY);
+      return -1;
+    }
 
     Status = NtUserBuildPropList(hWnd, (LPVOID)pli, Count, &Count);
     if(!NT_SUCCESS(Status))