null_blk: validate the number of devices
authorAndré Almeida <andrealmeid@collabora.com>
Wed, 11 Sep 2019 14:46:36 +0000 (11:46 -0300)
committerJens Axboe <axboe@kernel.dk>
Wed, 11 Sep 2019 22:04:25 +0000 (16:04 -0600)
A negative number of devices is nonsensical, so change the type to
unsigned. If the number of devices is 0, it is impossible for userspace
to interact with the module, so refuse loading the driver for that case.

Signed-off-by: André Almeida <andrealmeid@collabora.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/null_blk_main.c

index bd6e5cd02a57b7d21bbd2dad6ce0ed2da15f1552..53d4c15299844f52416eb5300fc86f810ea72ff7 100644 (file)
@@ -141,7 +141,7 @@ static int g_bs = 512;
 module_param_named(bs, g_bs, int, 0444);
 MODULE_PARM_DESC(bs, "Block size (in bytes)");
 
-static int nr_devices = 1;
+static unsigned int nr_devices = 1;
 module_param(nr_devices, int, 0444);
 MODULE_PARM_DESC(nr_devices, "Number of devices to register");
 
@@ -1767,6 +1767,10 @@ static int __init null_init(void)
                pr_err("null_blk: legacy IO path no longer available\n");
                return -EINVAL;
        }
+       if (!nr_devices) {
+               pr_err("null_blk: invalid number of devices\n");
+               return -EINVAL;
+       }
        if (g_queue_mode == NULL_Q_MQ && g_use_per_node_hctx) {
                if (g_submit_queues != nr_online_nodes) {
                        pr_warn("null_blk: submit_queues param is set to %u.\n",