[PATCH] ubi: Reject device with erasesize 0

Jan Kara jack at suse.cz
Fri Sep 1 02:09:51 PDT 2023


On Fri 01-09-23 09:11:26, Zhihao Cheng wrote:
> 在 2023/8/31 19:11, Jan Kara 写道:
> Hi Jan,
> > In principle MTD device with erasesize 0 can exist and it is possible to
> > create them e.g. via KVM. If that happens UBI layer currently crashes
> > with:
> > 
> > ubi7: attaching mtd147
> > divide error: 0000 [#1] PREEMPT SMP KASAN
> > CPU: 0 PID: 20023 Comm: syz-executor.0 Not tainted 6.2.0 #6
> > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
> > 1.13.0-1ubuntu1.1 04/01/2014
> > RIP: 0010:mtd_div_by_eb include/linux/mtd/mtd.h:580 [inline]
> > RIP: 0010:io_init drivers/mtd/ubi/build.c:620 [inline]
> > RIP: 0010:ubi_attach_mtd_dev+0x77f/0x2fe0 drivers/mtd/ubi/build.c:955
> > Code: fc ff df 48 c1 ea 03 0f b6 14 02 4c 89 f0 83 e0 07 83 c0 03 38
> > d0 7c 08 84 d2 0f 85 1f 25 00 00 41 8b 4c 24 10 48 89 d8 31 d2 <48> f7
> > f1 48 89 c3 e8 b6 f3 1b fc 48 8d 85 40 17 00 00 48 89 c2 48
> > RSP: 0018:ffffc9000be0fd30 EFLAGS: 00010246
> > RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
> > RDX: 0000000000000000 RSI: ffff888047a49d40 RDI: 0000000000000002
> > RBP: ffff888024e1c000 R08: 0000000000000016 R09: fffff520017c1f47
> > R10: ffffc9000be0fa37 R11: fffff520017c1f46 R12: ffff88806545a000
> > R13: 0000000000000000 R14: ffff88806545a010 R15: 0000000000000007
> > FS:  00007fd45e85c700(0000) GS:ffff88802ca00000(0000) knlGS:0000000000000000
> > CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 00007f64aeef53a4 CR3: 000000004f39a000 CR4: 0000000000350ef0
> > Call Trace:
> >   <TASK>
> >   ctrl_cdev_ioctl+0x303/0x3a0 drivers/mtd/ubi/cdev.c:1043
> >   vfs_ioctl fs/ioctl.c:51 [inline]
> >   __do_sys_ioctl fs/ioctl.c:870 [inline]
> >   __se_sys_ioctl fs/ioctl.c:856 [inline]
> >   __x64_sys_ioctl+0x198/0x210 fs/ioctl.c:856
> >   do_syscall_x64 arch/x86/entry/common.c:50 [inline]
> >   do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
> >   entry_SYSCALL_64_after_hwframe+0x63/0xcd
> > 
> > Handle such devices gracefully and just reject attaching UBI to them
> > instead of crashing.
> > 
> > Reported-by: Yu Hao <yhao016 at ucr.edu>
> > Link: https://lore.kernel.org/all/CA+UBctDsHRpkLG5ppdiuV8Msn4Dx-ZJ2xDrxfa48VMb7ZE+xBA@mail.gmail.com
> > Signed-off-by: Jan Kara <jack at suse.cz>
> > ---
> >   drivers/mtd/ubi/build.c | 3 +++
> >   1 file changed, 3 insertions(+)
> > 
> > It doesn't seem the discussion linked above concluded in a patch. So is
> > anything wrong with the trivial approach here so that we can close the issue?
> 
> There was a patch, see
> https://patchwork.ozlabs.org/project/linux-mtd/patch/20230423111041.684297-1-chengzhihao1@huawei.com/

Ah, OK, I wasn't able to find it through lore search. Thanks for the
pointer! Hopefully Richard will merge it now.

								Honza
-- 
Jan Kara <jack at suse.com>
SUSE Labs, CR



More information about the linux-mtd mailing list