From: zhengbin Date: Tue, 13 Aug 2019 11:27:40 +0000 (+0800) Subject: paride/pcd: need to set queue to NULL before put_disk X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=d821cce8ac4625ceecabb9c9e2420daaf41d41d8;p=linux.git 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 Signed-off-by: zhengbin Signed-off-by: Jens Axboe --- diff --git a/drivers/block/paride/pcd.c b/drivers/block/paride/pcd.c index 001dbdcbf3557..bfca80dde7db2 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; }