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
_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss