Re: general protection fault in tcf_generic_walker
From: Cong Wang <hidden>
Date: 2020-09-30 18:10:42
Also in:
lkml
On Wed, Sep 30, 2020 at 10:42 AM syzbot [off-list ref] wrote:
syzbot has found a reproducer for the following issue on: HEAD commit: 2b3e981a Merge branch 'mptcp-Fix-for-32-bit-DATA_FIN' git tree: net console output: https://syzkaller.appspot.com/x/log.txt?x=16537247900000 kernel config: https://syzkaller.appspot.com/x/.config?x=99a7c78965c75e07 dashboard link: https://syzkaller.appspot.com/bug?extid=b47bc4f247856fb4d9e1 compiler: gcc (GCC) 10.1.0-syz 20200507 syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1412a5a7900000 IMPORTANT: if you fix the issue, please add the following tag to the commit: Reported-by: syzbot+b47bc4f247856fb4d9e1@syzkaller.appspotmail.com general protection fault, probably for non-canonical address 0xdffffc0000000004: 0000 [#1] PREEMPT SMP KASAN KASAN: null-ptr-deref in range [0x0000000000000020-0x0000000000000027] CPU: 0 PID: 8855 Comm: syz-executor.1 Not tainted 5.9.0-rc6-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:tcf_dump_walker net/sched/act_api.c:240 [inline] RIP: 0010:tcf_generic_walker+0x367/0xba0 net/sched/act_api.c:343 Code: 24 31 ff 48 89 de e8 c8 55 eb fa 48 85 db 74 3f e8 3e 59 eb fa 48 8d 7d 30 48 b9 00 00 00 00 00 fc ff df 48 89 f8 48 c1 e8 03 <80> 3c 08 00 0f 85 26 07 00 00 48 8b 5d 30 31 ff 48 2b 1c 24 48 89 RSP: 0018:ffffc9000b6ff3a8 EFLAGS: 00010202 RAX: 0000000000000004 RBX: c0000000ffffaae4 RCX: dffffc0000000000 RDX: ffff8880a82aa140 RSI: ffffffff868ae502 RDI: 0000000000000020 RBP: fffffffffffffff0 R08: 0000000000000000 R09: ffff8880a8c41e07 R10: 0000000000000000 R11: 0000000000000000 R12: ffff88809f226340 R13: 0000000000000000 R14: 00000000ffffffff R15: 0000000000000000 FS: 00007f156f7fa700(0000) GS:ffff8880ae400000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055d25128b348 CR3: 00000000a7d3d000 CR4: 00000000001506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: tc_dump_action+0x6d5/0xe60 net/sched/act_api.c:1609
Probably just need another IS_ERR() check on the dump path. I will take a second look. Thanks.