[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