[Dnsmasq-discuss] [PATCH] free() after use

Geert Stappers stappers at stappers.nl
Wed Jun 22 09:05:57 UTC 2022


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;
-- 
2.11.0




More information about the Dnsmasq-discuss mailing list