[PATCH 2/2] jscript: Fixed a leak in regexp_match function

Marcus Meissner meissner at suse.de
Fri Jan 25 09:30:03 CST 2013


On Fri, Jan 25, 2013 at 04:26:59PM +0100, Piotr Caban wrote:
> ---
>  dlls/jscript/regexp.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> 

> diff --git a/dlls/jscript/regexp.c b/dlls/jscript/regexp.c
> index 0d66551..fa2668c 100644
> --- a/dlls/jscript/regexp.c
> +++ b/dlls/jscript/regexp.c
> @@ -3466,10 +3466,15 @@ static HRESULT regexp_match(script_ctx_t *ctx, jsdisp_t *dispex, jsstr_t *str, B
>              break;
>  
>          if(ret_size == i) {
> -            if(ret)
> -                ret = heap_realloc(ret, (ret_size <<= 1) * sizeof(match_result_t));
> -            else
> +            if(ret) {
> +                match_result_t *old_ret = ret;
> +
> +                ret = heap_realloc(old_ret, (ret_size <<= 1) * sizeof(match_result_t));
> +                if(!ret)
> +                    heap_free(old_ret);

Should be probably if (ret) heap_free(old_ret);  here.

> +            }else {
>                  ret = heap_alloc((ret_size=4) * sizeof(match_result_t));
> +            }
>              if(!ret) {
>                  hres = E_OUTOFMEMORY;
>                  break;
> 

> 




More information about the wine-devel mailing list