bpftool: Fix memory leak in do_build_table_cb
authorMiaoqian Lin <linmq006@gmail.com>
Tue, 6 Dec 2022 07:19:06 +0000 (11:19 +0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:32:23 +0000 (13:32 +0100)
[ Upstream commit fa55ef14ef4fe06198c0ce811b603aec24134bc2 ]

strdup() allocates memory for path. We need to release the memory in the
following error path. Add free() to avoid memory leak.

Fixes: 8f184732b60b ("bpftool: Switch to libbpf's hashmap for pinned paths of BPF objects")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20221206071906.806384-1-linmq006@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/bpf/bpftool/common.c

index 0cdb4f7115101219944c095563317ee4714dc6d0..e7a11cff7245a540031465fa867d05a64aaa8e79 100644 (file)
@@ -499,6 +499,7 @@ static int do_build_table_cb(const char *fpath, const struct stat *sb,
        if (err) {
                p_err("failed to append entry to hashmap for ID %u, path '%s': %s",
                      pinned_info.id, path, strerror(errno));
+               free(path);
                goto out_close;
        }