usbip: Fix sscanf handling
authorAlan <gnomes@lxorguk.ukuu.org.uk>
Wed, 11 Dec 2013 18:32:59 +0000 (18:32 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 13 Feb 2018 18:32:23 +0000 (18:32 +0000)
commit 2d32927127f44d755780aa5fa88c8c34e72558f8 upstream.

Scan only to the length permitted by the buffer

One of a set of sscanf problems noted by Jackie Chang

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/staging/usbip/userspace/libsrc/usbip_common.c
drivers/staging/usbip/userspace/libsrc/vhci_driver.c

index 154b4b1..8751ebd 100644 (file)
@@ -164,7 +164,7 @@ int read_attr_speed(struct sysfs_device *dev)
                goto err;
        }
 
-       ret = sscanf(attr->value, "%s\n", speed);
+       ret = sscanf(attr->value, "%99s\n", speed);
        if (ret < 1) {
                dbg("sscanf failed");
                goto err;
index 2697877..096e476 100644 (file)
@@ -66,7 +66,7 @@ static int parse_status(char *value)
                unsigned long socket;
                char lbusid[SYSFS_BUS_ID_SIZE];
 
-               ret = sscanf(c, "%d %d %d %x %lx %s\n",
+               ret = sscanf(c, "%d %d %d %x %lx %31s\n",
                                &port, &status, &speed,
                                &devid, &socket, lbusid);