Check for failed allocations. Spotted by Martin Bealby.
authorFilip Navara <filip.navara@gmail.com>
Mon, 12 Dec 2005 20:24:20 +0000 (20:24 +0000)
committerFilip Navara <filip.navara@gmail.com>
Mon, 12 Dec 2005 20:24:20 +0000 (20:24 +0000)
svn path=/trunk/; revision=20111

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(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))
 
     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(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))
 
     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(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))
 
     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(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))
 
     Status = NtUserBuildPropList(hWnd, (LPVOID)pli, Count, &Count);
     if(!NT_SUCCESS(Status))