From 0525de4f182af8292cd0ce4f4cacc17ea463b8bc Mon Sep 17 00:00:00 2001 From: Sam James Date: Mon, 5 Dec 2022 09:56:41 +0000 Subject: [PATCH] librc-depend: fix -Wmismatched-dealloc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Despite this being a 'deptree', it's actually xmalloc'd in the same function (rc_deptree_update), and so should be free'd, not rc_deptree_free'd, as rc_deptree_load* wasn't used to allocate it. ``` [71/213] Compiling C object src/librc/librc.so.1.p/librc-depend.c.o ../src/librc/librc-depend.c: In function ‘rc_deptree_update’: ../src/librc/librc-depend.c:1077:9: warning: ‘rc_deptree_free’ called on pointer returned from a mismatched allocation function [-Wmismatched-dealloc] 1077 | rc_deptree_free(deptree); | ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../src/shared/misc.h:29, from ../src/librc/librc.h:57, from ../src/librc/librc-depend.c:21: In function ‘xmalloc’, inlined from ‘rc_deptree_update’ at ../src/librc/librc-depend.c:775:12: ../src/shared/helpers.h:64:23: note: returned from ‘malloc’ 64 | void *value = malloc(size); | ^~~~~~~~~~~~ ``` This fixes #563. --- src/librc/librc-depend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/librc/librc-depend.c b/src/librc/librc-depend.c index 4da81c03..03149a52 100644 --- a/src/librc/librc-depend.c +++ b/src/librc/librc-depend.c @@ -1074,6 +1074,6 @@ rc_deptree_update(void) } rc_stringlist_free(config); - rc_deptree_free(deptree); + free(deptree); return retval; }