[PATCH] 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.

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

diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index 498c158..1fe2ed0 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