[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: mshtml: Avoid memory leaks (coverity)
From: Jacek Caban <jacek () codeweavers ! com>
Date: 2013-11-30 14:30:04
Message-ID: 5299F66C.7070902 () codeweavers ! com
[Download RAW message or body]
Hi Frédéric,
On 11/30/13 15:16, Frédéric Delanoy wrote:
> CID 1131417
> ---
> dlls/mshtml/htmlbody.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/dlls/mshtml/htmlbody.c b/dlls/mshtml/htmlbody.c
> index fcd8766..163f0ba 100644
> --- a/dlls/mshtml/htmlbody.c
> +++ b/dlls/mshtml/htmlbody.c
> @@ -648,7 +648,8 @@ static HRESULT WINAPI HTMLBodyElement_get_scroll(IHTMLBodyElement *iface, BSTR *
>
> if(!overflow || !*overflow) {
> *p = NULL;
> - return S_OK;
> + hres = S_OK;
> + goto cleanup;
> }else if(!strcmpW(overflow, visibleW) || !strcmpW(overflow, autoW)) {
> ret = autoW;
> }else if(!strcmpW(overflow, scrollW)) {
> @@ -658,11 +659,16 @@ static HRESULT WINAPI HTMLBodyElement_get_scroll(IHTMLBodyElement *iface, BSTR *
> }else {
> TRACE("Defaulting %s to NULL\n", debugstr_w(overflow));
> *p = NULL;
> - return S_OK;
> + hres = S_OK;
> + goto cleanup;
> }
>
> *p = SysAllocString(ret);
> - return *p ? S_OK : E_OUTOFMEMORY;
> + hres = *p ? S_OK : E_OUTOFMEMORY;
> +
> +cleanup:
> + SysFreeString(overflow);
> + return hres;
> }
>
Good catch, but those gotos make the code more complicated that it needs
to be. You may just remove early returns and free overflow before
allocating the result.
Jacek
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic