block: xen-blkfront: Fix possible NULL ptr dereference
In the blkif_release function the bdget_disk() call might returns a NULL ptr which might be dereferenced on bdev->bd_openers checking Signed-off-by: Felipe Pena <felipensp@gmail.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> [v2: Added WARN per Roger's suggestion]
This commit is contained in:
parent
427bfe07e6
commit
2f089cb89d
@ -2011,6 +2011,10 @@ static void blkif_release(struct gendisk *disk, fmode_t mode)
|
|||||||
|
|
||||||
bdev = bdget_disk(disk, 0);
|
bdev = bdget_disk(disk, 0);
|
||||||
|
|
||||||
|
if (!bdev) {
|
||||||
|
WARN(1, "Block device %s yanked out from us!\n", disk->disk_name);
|
||||||
|
goto out_mutex;
|
||||||
|
}
|
||||||
if (bdev->bd_openers)
|
if (bdev->bd_openers)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
@ -2041,6 +2045,7 @@ static void blkif_release(struct gendisk *disk, fmode_t mode)
|
|||||||
|
|
||||||
out:
|
out:
|
||||||
bdput(bdev);
|
bdput(bdev);
|
||||||
|
out_mutex:
|
||||||
mutex_unlock(&blkfront_mutex);
|
mutex_unlock(&blkfront_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user