mirror of
https://github.com/genesi/linux-legacy.git
synced 2026-02-03 23:54:40 +00:00
block: use after free bug in __blkdev_get
commit 960cc0f4fef607baabc2232fbd7cce5368a9dcfd upstream.
commit 0762b8bde9
(from 14 months ago) introduced a use-after-free bug which has just
recently started manifesting in my md testing.
I tried git bisect to find out what caused the bug to start
manifesting, and it could have been the recent change to
blk_unregister_queue (48c0d4d4c04) but the results were inconclusive.
This patch certainly fixes my symptoms and looks correct as the two
calls are now in the same order as elsewhere in that function.
Signed-off-by: NeilBrown <neilb@suse.de>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
bb969fdc8c
commit
ee3989464a
@@ -1243,8 +1243,8 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
|
||||
bd_set_size(bdev, (loff_t)bdev->bd_part->nr_sects << 9);
|
||||
}
|
||||
} else {
|
||||
put_disk(disk);
|
||||
module_put(disk->fops->owner);
|
||||
put_disk(disk);
|
||||
disk = NULL;
|
||||
if (bdev->bd_contains == bdev) {
|
||||
if (bdev->bd_disk->fops->open) {
|
||||
|
||||
Reference in New Issue
Block a user