Re: [PATCH] cryptui: check NULL ptr differently (Coverity)
Marcus Meissner wrote:
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)
You are mixing tabs and spaces in this one. -- Cheers, Paul.
participants (1)
-
Paul Vriens