staging: usbip: vhci_sysfs.c: check return value of sscanf
authorJohn de la Garza <john@jjdev.com>
Thu, 6 Mar 2014 18:36:34 +0000 (10:36 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Mar 2014 19:58:31 +0000 (11:58 -0800)
Added code to check return value of sscanf.

Signed-off-by: John de la Garza <john@jjdev.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/usbip/vhci_sysfs.c

index 03e6edf46e7ca529ed1ca7e0f17fa96715e22b0f..82dd49f7df9e9e5ac21fc708e9710a056656fd26 100644 (file)
@@ -114,7 +114,8 @@ static ssize_t store_detach(struct device *dev, struct device_attribute *attr,
        int err;
        __u32 rhport = 0;
 
-       sscanf(buf, "%u", &rhport);
+       if (sscanf(buf, "%u", &rhport) != 1)
+               return -EINVAL;
 
        /* check rhport */
        if (rhport >= VHCI_NPORTS) {
@@ -182,7 +183,8 @@ static ssize_t store_attach(struct device *dev, struct device_attribute *attr,
         * @devid: unique device identifier in a remote host
         * @speed: usb device speed in a remote host
         */
-       sscanf(buf, "%u %u %u %u", &rhport, &sockfd, &devid, &speed);
+       if (sscanf(buf, "%u %u %u %u", &rhport, &sockfd, &devid, &speed) != 1)
+               return -EINVAL;
 
        usbip_dbg_vhci_sysfs("rhport(%u) sockfd(%u) devid(%u) speed(%u)\n",
                             rhport, sockfd, devid, speed);