mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 07:01:32 +00:00
btrfs: fix potential oops in device_list_add
alloc_fs_devices() can return ERR_PTR(-ENOMEM), so dereferencing its
result before the check for IS_ERR() is a bad idea.
Fixes: d1a6300282
("btrfs: add members to fs_devices to track fsid changes")
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
302167c50b
commit
92900e5160
@ -957,11 +957,11 @@ static noinline struct btrfs_device *device_list_add(const char *path,
|
||||
else
|
||||
fs_devices = alloc_fs_devices(disk_super->fsid, NULL);
|
||||
|
||||
fs_devices->fsid_change = fsid_change_in_progress;
|
||||
|
||||
if (IS_ERR(fs_devices))
|
||||
return ERR_CAST(fs_devices);
|
||||
|
||||
fs_devices->fsid_change = fsid_change_in_progress;
|
||||
|
||||
mutex_lock(&fs_devices->device_list_mutex);
|
||||
list_add(&fs_devices->fs_list, &fs_uuids);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user