libbpf: Fix memory leak in btf__dedup()
authorMauricio Vásquez <mauricio@kinvolk.io>
Fri, 22 Oct 2021 20:20:35 +0000 (15:20 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Nov 2021 18:16:39 +0000 (19:16 +0100)
[ Upstream commit 1000298c76830bc291358e98e8fa5baa3baa9b3a ]

Free btf_dedup if btf_ensure_modifiable() returns error.

Fixes: 919d2b1dbb07 ("libbpf: Allow modification of BTF and add btf__add_str API")
Signed-off-by: Mauricio Vásquez <mauricio@kinvolk.io>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20211022202035.48868-1-mauricio@kinvolk.io
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/lib/bpf/btf.c

index 77dc24d..bf8c867 100644 (file)
@@ -2914,8 +2914,10 @@ int btf__dedup(struct btf *btf, struct btf_ext *btf_ext,
                return libbpf_err(-EINVAL);
        }
 
-       if (btf_ensure_modifiable(btf))
-               return libbpf_err(-ENOMEM);
+       if (btf_ensure_modifiable(btf)) {
+               err = -ENOMEM;
+               goto done;
+       }
 
        err = btf_dedup_prep(d);
        if (err) {