From a7f8d0db3d98046f63594642b5ee9457391ef31d Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Thu, 8 May 2025 16:55:00 +0200 Subject: [PATCH] Xext: xres: protect against free()ing from non-heap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit > ../Xext/xres.c: In function ‘DestroyFragments’: > ../Xext/xres.c:124:9: warning: ‘free’ of ‘it’ which points to memory on the stack [CWE-590] [-Wanalyzer-free-of-non-heap] > 124 | free(it); > | ^~~~~~~~ Signed-off-by: Enrico Weigelt, metux IT consult --- Xext/xres.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Xext/xres.c b/Xext/xres.c index 90f8bc285..4f4995f28 100644 --- a/Xext/xres.c +++ b/Xext/xres.c @@ -136,9 +136,11 @@ static void DestroyFragments(struct xorg_list *frags) { FragmentList *it, *tmp; - xorg_list_for_each_entry_safe(it, tmp, frags, l) { - xorg_list_del(&it->l); - free(it); + if (!xorg_list_is_empty(frags)) { + xorg_list_for_each_entry_safe(it, tmp, frags, l) { + xorg_list_del(&it->l); + free(it); + } } }