From: zhengbin Date: Wed, 20 Feb 2019 13:27:05 +0000 (+0800) Subject: block: fix NULL pointer dereference in register_disk X-Git-Tag: v5.1-rc1~100^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d7c1d3fd7c7eda7dea351f071945e843a46c145;p=thirdparty%2Fkernel%2Flinux.git block: fix NULL pointer dereference in register_disk If __device_add_disk-->bdi_register_owner-->bdi_register--> bdi_register_va-->device_create_vargs fails, bdi->dev is still NULL, __device_add_disk-->register_disk will visit bdi->dev->kobj. This patch fixes that. Signed-off-by: zhengbin Signed-off-by: Jens Axboe --- diff --git a/block/genhd.c b/block/genhd.c index 1dd8fd6613b8d..78b82d26aa9c4 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -655,10 +655,12 @@ exit: kobject_uevent(&part_to_dev(part)->kobj, KOBJ_ADD); disk_part_iter_exit(&piter); - err = sysfs_create_link(&ddev->kobj, - &disk->queue->backing_dev_info->dev->kobj, - "bdi"); - WARN_ON(err); + if (disk->queue->backing_dev_info->dev) { + err = sysfs_create_link(&ddev->kobj, + &disk->queue->backing_dev_info->dev->kobj, + "bdi"); + WARN_ON(err); + } } /**