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

Paul Vriens paul.vriens.wine at gmail.com
Thu Feb 5 00:54:25 CST 2009


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.



More information about the wine-devel mailing list