[PATCH] Potential memory leak in argz_replace.c
Mon Jun 1 08:18:00 GMT 2015
On May 31 21:27, David Stacey wrote:
> On 27/05/2015 11:16, Corinna Vinschen wrote:
> >However, there appear to be more issues with this function. E.g., when
> >allocating new_argz, it's never tested if the allocation worked. Also,
> >the expression `*argz = (char *)realloc(*argz, new_argz_len)', when
> >failing, will overwrite *argz with NULL. When that happens the caller
> >potentially loses its (un-free'd) argz pointer with no way to recover.
> >Care to fix those as well?
> 'Twould be a pleasure.
> 2015-05-31 David Stacey <...>
> * libc/argz/argz_replace.c: Corrected behaviour when memory is
Thanks but, uhm, that didn't quite work out:
libc/argz/argz_replace.c: In function ‘argz_replace’:
libc/argz/argz_replace.c:75:26: error: assignment makes integer from pointer without a cast [-Werror]
if(!(*argz_realloc = (char *)realloc(*argz, new_argz_len)))
libc/argz/argz_replace.c:80:12: error: assignment from incompatible pointer type [-Werror]
argz = argz_realloc;
cc1: all warnings being treated as errors
I fixed that and applied the patch.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 819 bytes
Desc: not available
More information about the Newlib