mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2026-06-25 11:43:20 +02:00
usbip: fix usbip bind writing random string after command in match_busid
commit 544c4605ac upstream.
usbip bind writes commands followed by random string when writing to
match_busid attribute in sysfs, caused by using full variable size
instead of string length.
Signed-off-by: Juan Zea <juan.zea@qindel.com>
Acked-by: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
This commit is contained in:
parent
10f1f61202
commit
10a272f024
|
|
@ -34,6 +34,7 @@ int modify_match_busid(char *busid, int add)
|
|||
char match_busid_attr_path[SYSFS_PATH_MAX];
|
||||
struct sysfs_attribute *match_busid_attr;
|
||||
int rc, ret = 0;
|
||||
int cmd_size;
|
||||
|
||||
if (strnlen(busid, SYSFS_BUS_ID_SIZE) > SYSFS_BUS_ID_SIZE - 1) {
|
||||
dbg("busid is too long");
|
||||
|
|
@ -58,13 +59,15 @@ int modify_match_busid(char *busid, int add)
|
|||
}
|
||||
|
||||
if (add)
|
||||
snprintf(buff, SYSFS_BUS_ID_SIZE + 4, "add %s", busid);
|
||||
cmd_size = snprintf(buff, SYSFS_BUS_ID_SIZE + 4, "add %s",
|
||||
busid);
|
||||
else
|
||||
snprintf(buff, SYSFS_BUS_ID_SIZE + 4, "del %s", busid);
|
||||
cmd_size = snprintf(buff, SYSFS_BUS_ID_SIZE + 4, "del %s",
|
||||
busid);
|
||||
|
||||
dbg("write \"%s\" to %s", buff, match_busid_attr->path);
|
||||
|
||||
rc = sysfs_write_attribute(match_busid_attr, buff, sizeof(buff));
|
||||
rc = sysfs_write_attribute(match_busid_attr, buff, cmd_size);
|
||||
if (rc < 0) {
|
||||
dbg("failed to write match_busid: %s", strerror(errno));
|
||||
ret = -1;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user