From: Neil Brown Date: Thu, 3 Jul 2008 02:45:30 +0000 (+0000) Subject: md: Fix error paths if md_probe fails. X-Git-Tag: v2.6.25.12~43 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=583fe2db21978453aa522f56320f15b2de0d9d88;p=thirdparty%2Fkernel%2Fstable.git md: Fix error paths if md_probe fails. commit 9bbbca3a0ee09293108b67835c6bdf6196d7bcb3 upstream md_probe can fail (e.g. alloc_disk could fail) without returning an error (as it alway returns NULL). So when we call mddev_find immediately afterwards, we need to check that md_probe actually succeeded. This means checking that mdev->gendisk is non-NULL. Cc: Dave Jones Signed-off-by: Neil Brown Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/md/md.c b/drivers/md/md.c index ba34990a6b50f..94e5711c7cc47 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -3804,8 +3804,10 @@ static void autorun_devices(int part) md_probe(dev, NULL, NULL); mddev = mddev_find(dev); - if (!mddev) { - printk(KERN_ERR + if (!mddev || !mddev->gendisk) { + if (mddev) + mddev_put(mddev); + printk(KERN_ERR "md: cannot allocate memory for md drive.\n"); break; }