On 7/15/24 11:13 AM, Michal Switala wrote: >> Reported-by: syzbot+cca39e6e84a367a7e6f6@xxxxxxxxxxxxxxxxxxxxxxxxx >> Closes: https://syzkaller.appspot.com/bug?extid=cca39e6e84a367a7e6f6 >> Link: https://lore.kernel.org/all/000000000000b95d41061cbf302a@xxxxxxxxxx/ > > Something doesn't add up. > This syzbot report is about: > > dev_map_enqueue+0x31/0x3e0 kernel/bpf/devmap.c:539 > __xdp_do_redirect_frame net/core/filter.c:4397 [inline] > bpf_prog_test_run_xdp > > why you're fixing bpf_prog_test_run_skb ? [ Please keep the relevant email context in the reply ]
The reproducer calls the methods bpf_prog_test_run_xdp and bpf_prog_test_run_skb. Both lead to the invocation of dev_map_enqueue, in the
The syzbot report is triggering from the bpf_prog_test_run_xdp. I agree with Alexei that fixing the bpf_prog_test_run_skb does not make sense. At least I don't see how dev_map_enqueue can be used from bpf_prog_test_run_skb.
It looks very similar to https://lore.kernel.org/bpf/000000000000f6531b061494e696@xxxxxxxxxx/. It has been fixed in commit 5bcf0dcbf906 ("xdp: use flags field to disambiguate broadcast redirect")
I tried the C repro. I can reproduce in the bpf tree also which should have the fix. I cannot reproduce in the bpf-next though.
Cc Toke who knows more details here.
case of the former, the backtrace is recorded in its entirety, whereas for the latter it is not. I think the bug might be incorrectly reported on syzkaller, as during GDB debugging, the problem occurred in functions called from bpf_prog_test_run_skb. I also ran testing of my patch on syzkaller and the tests passed.