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


_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to