summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrii Nakryiko <andrii@kernel.org>2024-05-29 16:12:12 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-07-11 12:51:24 +0200
commite0f557ad555f0e71b630d5b4434dd564034e230d (patch)
treee7b9cfb5ce2409becf1d9dcc0b28c936ad41ca42
parent165634c02d8584984f8a2dc8ab70e27e6890e581 (diff)
libbpf: don't close(-1) in multi-uprobe feature detector
commit 7d0b3953f6d832daec10a0d76e2d4db405768a8b upstream. Guard close(link_fd) with extra link_fd >= 0 check to prevent close(-1). Detected by Coverity static analysis. Fixes: 04d939a2ab22 ("libbpf: detect broken PID filtering logic for multi-uprobe") Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Acked-by: Jiri Olsa <jolsa@kernel.org> Link: https://lore.kernel.org/r/20240529231212.768828-1-andrii@kernel.org Signed-off-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--tools/lib/bpf/features.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/lib/bpf/features.c b/tools/lib/bpf/features.c
index 3df0125ed5fa..50befe125ddc 100644
--- a/tools/lib/bpf/features.c
+++ b/tools/lib/bpf/features.c
@@ -393,7 +393,8 @@ static int probe_uprobe_multi_link(int token_fd)
err = -errno; /* close() can clobber errno */
if (link_fd >= 0 || err != -EBADF) {
- close(link_fd);
+ if (link_fd >= 0)
+ close(link_fd);
close(prog_fd);
return 0;
}