[PATCH] (try 2) cryptui: check NULL ptr differently (Coverity)

Marcus Meissner marcus at jet.franken.de
Wed Feb 4 16:02:43 CST 2009


Hi,

CID 829, cryptui fails to handle data being NULL
correctly after the if (data) branch.

Since it is a allocation error, just return on failure.

Fixed mixed tabs/space issues.

Ciao, Marcus
---
 dlls/cryptui/main.c |   33 ++++++++++++++++-----------------
 1 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index 498c158..8590d0c 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -1076,25 +1076,24 @@ static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
         HWND tab = GetDlgItem(hwnd, IDC_MGR_STORES);
 
         data = HeapAlloc(GetProcessHeap(), 0, sizeof(struct CertMgrData));
-        if (data)
+        if (!data)
+            return 0;
+        data->imageList = ImageList_Create(16, 16, ILC_COLOR4 | ILC_MASK, 2, 0);
+        if (data->imageList)
         {
-            data->imageList = ImageList_Create(16, 16, ILC_COLOR4 | ILC_MASK,
-             2, 0);
-            if (data->imageList)
-            {
-                HBITMAP bmp;
-                COLORREF backColor = RGB(255, 0, 255);
+            HBITMAP bmp;
+            COLORREF backColor = RGB(255, 0, 255);
 
-                bmp = LoadBitmapW(hInstance, MAKEINTRESOURCEW(IDB_SMALL_ICONS));
-                ImageList_AddMasked(data->imageList, bmp, backColor);
-                DeleteObject(bmp);
-                ImageList_SetBkColor(data->imageList, CLR_NONE);
-                SendMessageW(GetDlgItem(hwnd, IDC_MGR_CERTS), LVM_SETIMAGELIST,
-                 LVSIL_SMALL, (LPARAM)data->imageList);
-            }
-            SetWindowLongPtrW(hwnd, DWLP_USER, (LPARAM)data);
-            data->title = pCryptUICertMgr->pwszTitle;
+            bmp = LoadBitmapW(hInstance, MAKEINTRESOURCEW(IDB_SMALL_ICONS));
+            ImageList_AddMasked(data->imageList, bmp, backColor);
+            DeleteObject(bmp);
+            ImageList_SetBkColor(data->imageList, CLR_NONE);
+            SendMessageW(GetDlgItem(hwnd, IDC_MGR_CERTS), LVM_SETIMAGELIST,
+                         LVSIL_SMALL, (LPARAM)data->imageList);
         }
+        SetWindowLongPtrW(hwnd, DWLP_USER, (LPARAM)data);
+        data->title = pCryptUICertMgr->pwszTitle;
+
         initialize_purpose_selection(hwnd);
         add_cert_columns(hwnd);
         if (pCryptUICertMgr->pwszTitle)
-- 
1.5.6



More information about the wine-patches mailing list