Re: [syzbot] WARNING in z_erofs_lz4_decompress

From: Dmitry Vyukov
Date: Mon Oct 25 2021 - 03:01:25 EST


On Mon, 25 Oct 2021 at 02:17, Gao Xiang <hsiangkao@xxxxxxxxxxxxxxxxx> wrote:
>
> Hi,
>
> On Sat, Oct 23, 2021 at 07:25:20PM -0700, syzbot wrote:
> > Hello,
> >
> > syzbot found the following issue on:
> >
> > HEAD commit: 60e8840126bd Add linux-next specific files for 20211018
> > git tree: linux-next
> > console output: https://syzkaller.appspot.com/x/log.txt?x=125932af300000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=4bd44cafcda7632e
> > dashboard link: https://syzkaller.appspot.com/bug?extid=d8aaffc3719597e8cfb4
> > compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
> >
> > Unfortunately, I don't have any reproducer for this issue yet.
> >
> > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > Reported-by: syzbot+d8aaffc3719597e8cfb4@xxxxxxxxxxxxxxxxxxxxxxxxx
> >
> > erofs: (device loop4): z_erofs_lz4_decompress_mem: failed to decompress -4100 in[4096, 0] out[9000]
> > ------------[ cut here ]------------
> > WARNING: CPU: 1 PID: 9895 at fs/erofs/decompressor.c:230 z_erofs_lz4_decompress_mem fs/erofs/decompressor.c:227 [inline]
> > WARNING: CPU: 1 PID: 9895 at fs/erofs/decompressor.c:230 z_erofs_lz4_decompress+0x841/0x1400 fs/erofs/decompressor.c:289
>
> If you fuzz compressed data, that is what you'd expect..

Hi Gao,

If you mean this is not a kernel bug, then the code should not use WARN.
WARN if for kernel bugs and is recognized as such by all testing
systems and humans.

Please fix it to use pr_err. If it's intended for the end user, pr_err
can also give a meaningful message and no stack trace (which is I
assume only huge clutter in this case).


> Thanks,
> Gao Xiang
>
> > Modules linked in:
> > CPU: 1 PID: 9895 Comm: kworker/u5:3 Not tainted 5.15.0-rc5-next-20211018-syzkaller #0
> > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
> > Workqueue: erofs_unzipd z_erofs_decompressqueue_work
> > RIP: 0010:z_erofs_lz4_decompress_mem fs/erofs/decompressor.c:230 [inline]
> > RIP: 0010:z_erofs_lz4_decompress+0x841/0x1400 fs/erofs/decompressor.c:289
> > Code: e9 03 80 3c 11 00 0f 85 8c 0a 00 00 41 56 48 8b 7d 00 45 89 e9 89 d9 48 c7 c2 20 eb fb 89 48 c7 c6 40 ed fb 89 e8 ee 5d 85 05 <0f> 0b 48 b8 00 00 00 00 00 fc ff df 48 8b 4c 24 08 5f 48 89 ca 48
> > RSP: 0018:ffffc90001b3f718 EFLAGS: 00010286
> > RAX: 0000000000000000 RBX: ffffffffffffeffc RCX: 0000000000000000
> > RDX: ffff8880795b3a00 RSI: ffffffff815ef308 RDI: fffff52000367ed3
> > RBP: ffffc90001b3f858 R08: 0000000000000063 R09: 0000000000000000
> > R10: ffffffff815e90de R11: 0000000000000000 R12: 0000000000000000
> > R13: 0000000000000000 R14: 0000000000002328 R15: 0000000000000000
> > FS: 0000000000000000(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 0000001b2ef25000 CR3: 000000002b3f7000 CR4: 00000000003506e0
> > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> > Call Trace:
> > <TASK>
> > z_erofs_decompress_pcluster.isra.0+0x1389/0x2450 fs/erofs/zdata.c:977
> > z_erofs_decompress_queue fs/erofs/zdata.c:1055 [inline]
> > z_erofs_decompressqueue_work+0xe0/0x170 fs/erofs/zdata.c:1066
> > process_one_work+0x9b2/0x1690 kernel/workqueue.c:2297
> > worker_thread+0x658/0x11f0 kernel/workqueue.c:2444
> > kthread+0x405/0x4f0 kernel/kthread.c:327
> > ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
> > </TASK>
> >
> >
> > ---
> > This report is generated by a bot. It may contain errors.
> > See https://goo.gl/tpsmEJ for more information about syzbot.
> > syzbot engineers can be reached at syzkaller@xxxxxxxxxxxxxxxx.
> >
> > syzbot will keep track of this issue. See:
> > https://goo.gl/tpsmEJ#status for how to communicate with syzbot.