]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
libnftables: fix crash when freeing non-malloc'd address
authorFlorian Westphal <fw@strlen.de>
Wed, 10 Jul 2024 13:25:58 +0000 (15:25 +0200)
committerFlorian Westphal <fw@strlen.de>
Wed, 10 Jul 2024 14:41:25 +0000 (16:41 +0200)
dirname may return static pointer:
munmap_chunk(): invalid pointer
20508 Aborted  nft -f test

Fixes: 6ef04f99382c ("libnftables: search for default include path last")
Signed-off-by: Florian Westphal <fw@strlen.de>
src/libnftables.c

index af4734c05004e3f22604262a1cd6939fc91d2916..586f8fdede76892bd476ff1df3f523758c08fbce 100644 (file)
@@ -789,12 +789,12 @@ static int nft_run_optimized_file(struct nft_ctx *nft, const char *filename)
 static int nft_ctx_add_basedir_include_path(struct nft_ctx *nft,
                                            const char *filename)
 {
-       const char *basedir = dirname(xstrdup(filename));
+       char *basedir = xstrdup(filename);
        int ret;
 
-       ret = nft_ctx_add_include_path(nft, basedir);
+       ret = nft_ctx_add_include_path(nft, dirname(basedir));
 
-       free_const(basedir);
+       free(basedir);
 
        return ret;
 }