diff options
author | Shaohua Li <shli@fb.com> | 2017-08-25 13:46:25 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2017-08-25 14:52:01 -0600 |
commit | 0d06a42f794bec6061e170fa9468d878051bc8b1 (patch) | |
tree | 5392f11e483ace79a5378c01670df2fb90c10c9c /drivers/block | |
parent | 4c18c9e962eb02e23731e5b40d4474fb04fdcb23 (diff) | |
download | op-kernel-dev-0d06a42f794bec6061e170fa9468d878051bc8b1.zip op-kernel-dev-0d06a42f794bec6061e170fa9468d878051bc8b1.tar.gz |
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')
-rw-r--r-- | drivers/block/null_blk.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/null_blk.c b/drivers/block/null_blk.c index 70b17db..6472135 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); |