• Sheng Zhao's avatar
    vduse: avoid empty string for dev name · a90e8608
    Sheng Zhao authored
    Syzkaller hits a kernel WARN when the first character of the dev name
    provided is NULL. Solution is to add a NULL check before calling
    cdev_device_add() in vduse_create_dev().
    
    kobject: (0000000072042169): attempted to be registered with empty name!
    WARNING: CPU: 0 PID: 112695 at lib/kobject.c:236
    Call Trace:
     kobject_add_varg linux/src/lib/kobject.c:390 [inline]
     kobject_add+0xf6/0x150 linux/src/lib/kobject.c:442
     device_add+0x28f/0xc20 linux/src/drivers/base/core.c:2167
     cdev_device_add+0x83/0xc0 linux/src/fs/char_dev.c:546
     vduse_create_dev linux/src/drivers/vdpa/vdpa_user/vduse_dev.c:2254 [inline]
     vduse_ioctl+0x7b5/0xf30 linux/src/drivers/vdpa/vdpa_user/vduse_dev.c:2316
     vfs_ioctl linux/src/fs/ioctl.c:47 [inline]
     file_ioctl linux/src/fs/ioctl.c:510 [inline]
     do_vfs_ioctl+0x14b/0xa80 linux/src/fs/ioctl.c:697
     ksys_ioctl+0x7c/0xa0 linux/src/fs/ioctl.c:714
     __do_sys_ioctl linux/src/fs/ioctl.c:721 [inline]
     __se_sys_ioctl linux/src/fs/ioctl.c:719 [inline]
     __x64_sys_ioctl+0x42/0x50 linux/src/fs/ioctl.c:719
     do_syscall_64+0x94/0x330 linux/src/arch/x86/entry/common.c:291
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: c8a6153b ("vduse: Introduce VDUSE - vDPA Device in Userspace")
    Cc: "Xie Yongji" <xieyongji@bytedance.com>
    Reported-by: default avatarXianjun Zeng <zengxianjun@bytedance.com>
    Signed-off-by: default avatarSheng Zhao <sheng.zhao@bytedance.com>
    Message-Id: <20230530033626.1266794-1-sheng.zhao@bytedance.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Acked-by: default avatarJason Wang <jasowang@redhat.com>
    Reviewed-by: default avatarXie Yongji <xieyongji@bytedance.com>
    Cc: "Michael S. Tsirkin"<mst@redhat.com>, "Jason Wang"<jasowang@redhat.com>,
    Reviewed-by: default avatarXie Yongji <xieyongji@bytedance.com>
    a90e8608
vduse_dev.c 47.4 KB