]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
usb: gadget: configfs: Ignore trailing LF for user strings to cdev
authorIngo Rohloff <ingo.rohloff@lauterbach.com>
Thu, 12 Dec 2024 15:41:14 +0000 (16:41 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Dec 2024 17:50:53 +0000 (18:50 +0100)
Since commit c033563220e0f7a8
("usb: gadget: configfs: Attach arbitrary strings to cdev")
a user can provide extra string descriptors to a USB gadget via configfs.

For "manufacturer", "product", "serialnumber", setting the string via
configfs ignores a trailing LF.

For the arbitrary strings the LF was not ignored.

This patch ignores a trailing LF to make this consistent with the existing
behavior for "manufacturer", ...  string descriptors.

Fixes: c033563220e0 ("usb: gadget: configfs: Attach arbitrary strings to cdev")
Cc: stable <stable@kernel.org>
Signed-off-by: Ingo Rohloff <ingo.rohloff@lauterbach.com>
Link: https://lore.kernel.org/r/20241212154114.29295-1-ingo.rohloff@lauterbach.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/configfs.c

index 6499a88d346cd3dc62a74dd649c9345f400a49aa..fba2a56dae974ca7ec3175010a9059fc52169a5b 100644 (file)
@@ -827,11 +827,15 @@ static ssize_t gadget_string_s_store(struct config_item *item, const char *page,
 {
        struct gadget_string *string = to_gadget_string(item);
        int size = min(sizeof(string->string), len + 1);
+       ssize_t cpy_len;
 
        if (len > USB_MAX_STRING_LEN)
                return -EINVAL;
 
-       return strscpy(string->string, page, size);
+       cpy_len = strscpy(string->string, page, size);
+       if (cpy_len > 0 && string->string[cpy_len - 1] == '\n')
+               string->string[cpy_len - 1] = 0;
+       return len;
 }
 CONFIGFS_ATTR(gadget_string_, s);