aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/null_blk.c
diff options
context:
space:
mode:
authorShaohua Li <shli@fb.com>2017-08-25 13:46:25 -0700
committerJens Axboe <axboe@kernel.dk>2017-08-25 14:52:01 -0600
commit0d06a42f794bec6061e170fa9468d878051bc8b1 (patch)
tree5392f11e483ace79a5378c01670df2fb90c10c9c /drivers/block/null_blk.c
parentblkcg: avoid free blkcg_root when failed to alloc blkcg policy (diff)
downloadlinux-dev-0d06a42f794bec6061e170fa9468d878051bc8b1.tar.xz
linux-dev-0d06a42f794bec6061e170fa9468d878051bc8b1.zip
block/nullb: fix NULL dereference
Dan reported this: The patch 2984c8684f96: "nullb: factor disk parameters" from Aug 14, 2017, leads to the following Smatch complaint: drivers/block/null_blk.c:1759 null_init_tag_set() error: we previously assumed 'nullb' could be null (see line 1750) 1755 set->cmd_size = sizeof(struct nullb_cmd); 1756 set->flags = BLK_MQ_F_SHOULD_MERGE; 1757 set->driver_data = NULL; 1758 1759 if (nullb->dev->blocking) ^^^^^^^^^^^^^^^^^^^^ And an unchecked dereference. nullb could be NULL here. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Shaohua Li <shli@fb.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/block/null_blk.c')
-rw-r--r--drivers/block/null_blk.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/null_blk.c b/drivers/block/null_blk.c
index 70b17db8c21f..647213525549 100644
--- a/drivers/block/null_blk.c
+++ b/drivers/block/null_blk.c
@@ -1756,7 +1756,7 @@ static int null_init_tag_set(struct nullb *nullb, struct blk_mq_tag_set *set)
set->flags = BLK_MQ_F_SHOULD_MERGE;
set->driver_data = NULL;
- if (nullb->dev->blocking)
+ if ((nullb && nullb->dev->blocking) || g_blocking)
set->flags |= BLK_MQ_F_BLOCKING;
return blk_mq_alloc_tag_set(set);