libbpf: Fix memory leak in btf__dedup()
authorMauricio Vásquez <mauricio@kinvolk.io>
Fri, 22 Oct 2021 20:20:35 +0000 (15:20 -0500)
committerAndrii Nakryiko <andrii@kernel.org>
Fri, 22 Oct 2021 23:00:53 +0000 (16:00 -0700)
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
tools/lib/bpf/btf.c

index 3a01c4b..85705c1 100644 (file)
@@ -2991,8 +2991,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) {