From: Aditya Pakki Date: Mon, 4 Mar 2019 22:48:54 +0000 (-0600) Subject: md: Fix failed allocation of md_register_thread X-Git-Tag: v3.18.137~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=73929a01c5659088b6a4aa54a2bc131b89dbfc0b;p=thirdparty%2Fkernel%2Fstable.git 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. Cc: stable@vger.kernel.org # v3.16+ Acked-by: Guoqing Jiang Signed-off-by: Aditya Pakki Signed-off-by: Song Liu Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index b983b7a223a2b..daecc70925e53 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -3836,6 +3836,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 9f442b9418e58..0ba8dd970e91d 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -6171,6 +6171,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; } /* Ok, everything is just fine now */