Skip to content

Commit 96cf2a2

Browse files
Etsukatadjwong
authored andcommitted
xfs: Fix UBSAN null-ptr-deref in xfs_sysfs_init
If xfs_sysfs_init is called with parent_kobj == NULL, UBSAN shows the following warning: UBSAN: null-ptr-deref in ./fs/xfs/xfs_sysfs.h:37:23 member access within null pointer of type 'struct xfs_kobj' Call Trace: dump_stack+0x10e/0x195 ubsan_type_mismatch_common+0x241/0x280 __ubsan_handle_type_mismatch_v1+0x32/0x40 init_xfs_fs+0x12b/0x28f do_one_initcall+0xdd/0x1d0 do_initcall_level+0x151/0x1b6 do_initcalls+0x50/0x8f do_basic_setup+0x29/0x2b kernel_init_freeable+0x19f/0x20b kernel_init+0x11/0x1e0 ret_from_fork+0x22/0x30 Fix it by checking parent_kobj before the code accesses its member. Signed-off-by: Eiichi Tsukata <[email protected]> Reviewed-by: Darrick J. Wong <[email protected]> [darrick: minor whitespace edits] Signed-off-by: Darrick J. Wong <[email protected]>
1 parent b63da6c commit 96cf2a2

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

fs/xfs/xfs_sysfs.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,11 @@ xfs_sysfs_init(
3232
struct xfs_kobj *parent_kobj,
3333
const char *name)
3434
{
35+
struct kobject *parent;
36+
37+
parent = parent_kobj ? &parent_kobj->kobject : NULL;
3538
init_completion(&kobj->complete);
36-
return kobject_init_and_add(&kobj->kobject, ktype,
37-
&parent_kobj->kobject, "%s", name);
39+
return kobject_init_and_add(&kobj->kobject, ktype, parent, "%s", name);
3840
}
3941

4042
static inline void

0 commit comments

Comments
 (0)