Re: [syzbot] Monthly trace report (May 2024)
From: Jiri Olsa
Date: Sun Jun 02 2024 - 16:52:59 EST
On Sun, Jun 02, 2024 at 12:09:50PM +0900, Masami Hiramatsu wrote:
> On Thu, 30 May 2024 23:50:32 -0700
> syzbot <syzbot+list0820d438c1905c75bc71@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> > Hello trace maintainers/developers,
> >
> > This is a 31-day syzbot report for the trace subsystem.
> > All related reports/information can be found at:
> > https://syzkaller.appspot.com/upstream/s/trace
> >
> > During the period, 1 new issues were detected and 0 were fixed.
> > In total, 10 issues are still open and 35 have been fixed so far.
> >
> > Some of the still happening issues:
> >
> > Ref Crashes Repro Title
> > <1> 705 Yes WARNING in format_decode (3)
> > https://syzkaller.appspot.com/bug?extid=e2c932aec5c8a6e1d31c
>
> Could you send this to bpf folks? It seems bpf_trace_printk caused this errror.
> (Maybe skipping fmt string check?)
>
> > <2> 26 Yes INFO: task hung in blk_trace_ioctl (4)
> > https://syzkaller.appspot.com/bug?extid=ed812ed461471ab17a0c
>
> This looks like debugfs_mutex lock leakage. Need to rerun with lockdep.
>
> > <3> 7 Yes WARNING in get_probe_ref
> > https://syzkaller.appspot.com/bug?extid=8672dcb9d10011c0a160
>
> Hm, fail on register_trace_block_rq_insert(). blktrace issue.
>
> > <4> 6 Yes INFO: task hung in blk_trace_remove (2)
> > https://syzkaller.appspot.com/bug?extid=2373f6be3e6de4f92562
>
> This looks like debugfs_mutex lock leakage too.
>
> > <5> 5 Yes general protection fault in bpf_get_attach_cookie_tracing
> > https://syzkaller.appspot.com/bug?extid=3ab78ff125b7979e45f9
>
> This is also BPF problem.
this one seems to be easy to fix, can't reproduce with either the change
below or with instrumenting __bpf_prog_test_run_raw_tp to set current->bpf_ctx
as in __bpf_trace_run
will send a patch
thanks,
jirka
---
diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
index 593efccc2030..fc303c20f402 100644
--- a/kernel/trace/bpf_trace.c
+++ b/kernel/trace/bpf_trace.c
@@ -1148,6 +1148,8 @@ BPF_CALL_1(bpf_get_attach_cookie_trace, void *, ctx)
{
struct bpf_trace_run_ctx *run_ctx;
+ if (!current->bpf_ctx)
+ return 0;
run_ctx = container_of(current->bpf_ctx, struct bpf_trace_run_ctx, run_ctx);
return run_ctx->bpf_cookie;
}