Skip to content

Commit 7bef797

Browse files
Chen Zhongjingregkh
authored andcommitted
vme: Fix error not catched in fake_init()
In fake_init(), __root_device_register() is possible to fail but it's ignored, which can cause unregistering vme_root fail when exit. general protection fault, probably for non-canonical address 0xdffffc000000008c KASAN: null-ptr-deref in range [0x0000000000000460-0x0000000000000467] RIP: 0010:root_device_unregister+0x26/0x60 Call Trace: <TASK> __x64_sys_delete_module+0x34f/0x540 do_syscall_64+0x38/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd Return error when __root_device_register() fails. Fixes: 658bcda ("vme: Adding Fake VME driver") Signed-off-by: Chen Zhongjin <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent bf44039 commit 7bef797

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/staging/vme_user/vme_fake.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,6 +1070,8 @@ static int __init fake_init(void)
10701070

10711071
/* We need a fake parent device */
10721072
vme_root = __root_device_register("vme", THIS_MODULE);
1073+
if (IS_ERR(vme_root))
1074+
return PTR_ERR(vme_root);
10731075

10741076
/* If we want to support more than one bridge at some point, we need to
10751077
* dynamically allocate this so we get one per device.

0 commit comments

Comments
 (0)