Re: [PATCH] newlib: libc: Fix memory leak in computematchjumps()

Corinna Vinschen <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
On Dec  2 00:13, Kuan-Wei Chiu wrote:
> In cases where malloc fails for the 'g->matchjump' allocation, the code
> path does not handle the failure gracefully, potentially leading to a
> memory leak. This fix ensures proper cleanup by freeing the allocated
> memory for 'pmatches' before returning.
> 
> Signed-off-by: Kuan-Wei Chiu <[email protected]>
> ---
>  newlib/libc/posix/regcomp.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/newlib/libc/posix/regcomp.c b/newlib/libc/posix/regcomp.c
> index 002f978cd..e71bc005c 100644
> --- a/newlib/libc/posix/regcomp.c
> +++ b/newlib/libc/posix/regcomp.c
> @@ -2001,8 +2001,10 @@ struct re_guts *g;
>  	}
>  
>  	g->matchjump = (int*) malloc(g->mlen * sizeof(unsigned int));
> -	if (g->matchjump == NULL)	/* Not a fatal error */
> -		return;
> +	if (g->matchjump == NULL) { /* Not a fatal error */
> +        free(pmatches);
> +        return;
> +    }
>  
>  	/* Set maximum possible jump for each character in the pattern */
>  	for (mindex = 0; mindex < g->mlen; mindex++)
> -- 
> 2.25.1

Pushed.

Thanks,
Corinna
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.