https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2af9e7dfacc582d385bcf858865ea11d4845cef8

commit 2af9e7dfacc582d385bcf858865ea11d4845cef8
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Mon Dec 16 20:37:23 2019 +0900
Commit:     GitHub <[email protected]>
CommitDate: Mon Dec 16 20:37:23 2019 +0900

    [USER32] Add ICO_ExtractIconExW RetPtr NULL check (#2149)
    
    CORE-16557
---
 win32ss/user/user32/misc/exticon.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/win32ss/user/user32/misc/exticon.c 
b/win32ss/user/user32/misc/exticon.c
index d3e18b08915..ba2bd6d6b2c 100644
--- a/win32ss/user/user32/misc/exticon.c
+++ b/win32ss/user/user32/misc/exticon.c
@@ -469,17 +469,20 @@ static UINT ICO_ExtractIconExW(
 
                     icon = CreateIconFromResourceEx(imageData, 
entry->icHeader.biSizeImage, sig == 1, 0x00030000, cx[index], cy[index], flags);
 
+                    HeapFree(GetProcessHeap(), 0, cursorData);
+
                     if (icon)
                     {
-                        RetPtr[index] = icon;
+                        if (RetPtr)
+                            RetPtr[index] = icon;
+                        else
+                            DestroyIcon(icon);
+
                         iconCount = 1;
+                        break;
                     }
-
-                    if(cursorData != NULL)
-                        HeapFree(GetProcessHeap(), 0, cursorData);
                 }
             }
-
         }
         ret = iconCount;       /* return number of retrieved icons */
     }

Reply via email to