nvmet: check sscanf value for subsys serial attr
authorChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Thu, 30 Jan 2020 18:29:33 +0000 (10:29 -0800)
committerKeith Busch <kbusch@kernel.org>
Wed, 4 Mar 2020 17:09:08 +0000 (09:09 -0800)
For nvmet in configfs.c we check return values for all the sscanf()
calls. Add similar check into the nvmet_subsys_attr_serial_store().

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/target/configfs.c

index 1654064deea52adb5a0b7a9031ef29290a0314e2..7aa10788b7c87e6e722e65194ed1da0d8a5ff264 100644 (file)
@@ -849,10 +849,13 @@ static ssize_t nvmet_subsys_attr_serial_show(struct config_item *item,
 static ssize_t nvmet_subsys_attr_serial_store(struct config_item *item,
                                              const char *page, size_t count)
 {
-       struct nvmet_subsys *subsys = to_subsys(item);
+       u64 serial;
+
+       if (sscanf(page, "%llx\n", &serial) != 1)
+               return -EINVAL;
 
        down_write(&nvmet_config_sem);
-       sscanf(page, "%llx\n", &subsys->serial);
+       to_subsys(item)->serial = serial;
        up_write(&nvmet_config_sem);
 
        return count;