[Dnsmasq-discuss] [PATCH] free() after use
Petr Menšík
pemensik at redhat.com
Mon Jul 11 10:32:26 UTC 2022
Correct, I have seen such warning on Fedora 36 too. While technically it
does not try to use any content of freed pointer, just a pointer value.
But worth fixing it, consider it a vote from me as well.
But it seems to me we want here just whine_realloc() introduced. It
would make it slightly more efficient.
On 22. 06. 22 11:05, Geert Stappers via Dnsmasq-discuss wrote:
> Because GCC 12.1 did report:
> cache.c: In function ‘cache_make_stat’:
> cache.c:1683:30: warning: pointer used after ‘free’ [-Wuse-after-free]
> 1683 | p = new + (p - buff);
> | ~~~^~~~~~~
> cache.c:1682:17: note: call to ‘free’ here
> 1682 | free(buff);
> | ^~~~~~~~~~
> ---
> src/cache.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/cache.c b/src/cache.c
> index a99d70d..e221afd 100644
> --- a/src/cache.c
> +++ b/src/cache.c
> @@ -1679,8 +1679,8 @@ int cache_make_stat(struct txt_record *t)
> if (!(new = whine_malloc(newlen)))
> return 0;
> memcpy(new, buff, bufflen);
> - free(buff);
> p = new + (p - buff);
> + free(buff);
> lenp = p - 1;
> buff = new;
> bufflen = newlen;
--
Petr Menšík
Software Engineer, RHEL
Red Hat, http://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB
More information about the Dnsmasq-discuss
mailing list