diff options
author | Aditya Pakki <pakki001@umn.edu> | 2019-03-04 16:48:54 -0600 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2019-07-09 22:04:16 +0100 |
commit | 0e355850c6a61e8b233017972cf7f431c97d6991 (patch) | |
tree | 8144e0cc0cb61bec6e11332fe91c77b3f220cbed | |
parent | 6831d2d4366d13fd48ff70a3a96016d2b294783f (diff) | |
download | linux-stable-0e355850c6a61e8b233017972cf7f431c97d6991.tar.gz linux-stable-0e355850c6a61e8b233017972cf7f431c97d6991.tar.bz2 linux-stable-0e355850c6a61e8b233017972cf7f431c97d6991.zip |
md: Fix failed allocation of md_register_thread
commit e406f12dde1a8375d77ea02d91f313fb1a9c6aec upstream.
mddev->sync_thread can be set to NULL on kzalloc failure downstream.
The patch checks for such a scenario and frees allocated resources.
Committer node:
Added similar fix to raid5.c, as suggested by Guoqing.
Acked-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Aditya Pakki <pakki001@umn.edu>
Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r-- | drivers/md/raid10.c | 2 | ||||
-rw-r--r-- | drivers/md/raid5.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 715dd5eed08c..cbe36396c371 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -3820,6 +3820,8 @@ static int run(struct mddev *mddev) set_bit(MD_RECOVERY_RUNNING, &mddev->recovery); mddev->sync_thread = md_register_thread(md_do_sync, mddev, "reshape"); + if (!mddev->sync_thread) + goto out_free_conf; } return 0; diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index affe5d3e768b..1dae2b025159 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -6180,6 +6180,8 @@ static int run(struct mddev *mddev) set_bit(MD_RECOVERY_RUNNING, &mddev->recovery); mddev->sync_thread = md_register_thread(md_do_sync, mddev, "reshape"); + if (!mddev->sync_thread) + goto abort; } |