Commit 87f627f7 authored by Valentina Manea's avatar Valentina Manea Committed by Greg Kroah-Hartman

staging: usbip: userspace: don't throw error when trying to read configuration specific attributes

When a device has just been bound to usbip-host but the client hasn't
set a configuration on it, certain attributes will not exist. Don't
treat this as an error.
Signed-off-by: default avatarValentina Manea <valentina.manea.m@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6080cd0e
...@@ -127,10 +127,23 @@ int read_attr_value(struct udev_device *dev, const char *name, ...@@ -127,10 +127,23 @@ int read_attr_value(struct udev_device *dev, const char *name,
goto err; goto err;
} }
/* The client chooses the device configuration
* when attaching it so right after being bound
* to usbip-host on the server the device will
* have no configuration.
* Therefore, attributes such as bConfigurationValue
* and bNumInterfaces will not exist and sscanf will
* fail. Check for these cases and don't treat them
* as errors.
*/
ret = sscanf(attr, format, &num); ret = sscanf(attr, format, &num);
if (ret < 1) { if (ret < 1) {
err("sscanf failed"); if (strcmp(name, "bConfigurationValue") &&
goto err; strcmp(name, "bNumInterfaces")) {
err("sscanf failed for attribute %s", name);
goto err;
}
} }
err: err:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment