[PATCH] libbpf: potential NULL dereference in usdt_manager_attach_usdt()

From: Haowen Bai
Date: Wed Apr 06 2022 - 22:38:29 EST


link could be null but still dereference bpf_link__destroy(&link->link)
and it will lead to a null pointer access.

Signed-off-by: Haowen Bai <baihaowen@xxxxxxxxx>
---
tools/lib/bpf/usdt.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/lib/bpf/usdt.c b/tools/lib/bpf/usdt.c
index 1bce2eab5e89..b02ebc4ba57c 100644
--- a/tools/lib/bpf/usdt.c
+++ b/tools/lib/bpf/usdt.c
@@ -996,7 +996,7 @@ struct bpf_link *usdt_manager_attach_usdt(struct usdt_manager *man, const struct
link = calloc(1, sizeof(*link));
if (!link) {
err = -ENOMEM;
- goto err_out;
+ goto link_err;
}

link->usdt_man = man;
@@ -1072,7 +1072,7 @@ struct bpf_link *usdt_manager_attach_usdt(struct usdt_manager *man, const struct

err_out:
bpf_link__destroy(&link->link);
-
+link_err:
free(targets);
hashmap__free(specs_hash);
if (elf)
--
2.7.4