diff options
author | zhengbin <zhengbin13@huawei.com> | 2019-08-13 19:27:40 +0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-09-04 07:01:02 -0600 |
commit | d821cce8ac4625ceecabb9c9e2420daaf41d41d8 (patch) | |
tree | d959fdc796f3db1c7c06d7f626c5462c4ce79d7a /drivers | |
parent | ecf4d59a4ebf1237bde1cb2de71a0a6e927d4b0c (diff) |
paride/pcd: need to set queue to NULL before put_disk
In pcd_init_units, if blk_mq_init_sq_queue fails, need to set queue to
NULL before put_disk, otherwise null-ptr-deref Read will occur.
put_disk
kobject_put
disk_release
blk_put_queue(disk->queue)
Fixes: f0d176255401 ("paride/pcd: Fix potential NULL pointer dereference and mem leak")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: zhengbin <zhengbin13@huawei.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/paride/pcd.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/paride/pcd.c b/drivers/block/paride/pcd.c index 001dbdcbf355..bfca80dde7db 100644 --- a/drivers/block/paride/pcd.c +++ b/drivers/block/paride/pcd.c @@ -314,8 +314,8 @@ static void pcd_init_units(void) disk->queue = blk_mq_init_sq_queue(&cd->tag_set, &pcd_mq_ops, 1, BLK_MQ_F_SHOULD_MERGE); if (IS_ERR(disk->queue)) { - put_disk(disk); disk->queue = NULL; + put_disk(disk); continue; } |