]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
bpf: Fix kprobe_multi cookies access in show_fdinfo callback
authorJiri Olsa <jolsa@kernel.org>
Wed, 25 Feb 2026 11:12:49 +0000 (12:12 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 26 Feb 2026 19:23:57 +0000 (11:23 -0800)
We don't check if cookies are available on the kprobe_multi link
before accessing them in show_fdinfo callback, we should.

Cc: stable@vger.kernel.org
Fixes: da7e9c0a7fbc ("bpf: Add show_fdinfo for kprobe_multi")
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20260225111249.186230-1-jolsa@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/trace/bpf_trace.c

index 9bc0dfd235af7834c51a90840b4e2b0eb4c4ef67..0b040a4174428f8761923f243e9b52fd7b780d1e 100644 (file)
@@ -2454,8 +2454,10 @@ static void bpf_kprobe_multi_show_fdinfo(const struct bpf_link *link,
                                         struct seq_file *seq)
 {
        struct bpf_kprobe_multi_link *kmulti_link;
+       bool has_cookies;
 
        kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link);
+       has_cookies = !!kmulti_link->cookies;
 
        seq_printf(seq,
                   "kprobe_cnt:\t%u\n"
@@ -2467,7 +2469,7 @@ static void bpf_kprobe_multi_show_fdinfo(const struct bpf_link *link,
        for (int i = 0; i < kmulti_link->cnt; i++) {
                seq_printf(seq,
                           "%llu\t %pS\n",
-                          kmulti_link->cookies[i],
+                          has_cookies ? kmulti_link->cookies[i] : 0,
                           (void *)kmulti_link->addrs[i]);
        }
 }