diff mbox series

usb: gadget: configfs: Ignore trailing LF for user strings to cdev

Message ID 20241212111004.7901-1-ingo.rohloff@lauterbach.com (mailing list archive)
State Superseded
Headers show
Series usb: gadget: configfs: Ignore trailing LF for user strings to cdev | expand

Commit Message

Ingo Rohloff Dec. 12, 2024, 11:10 a.m. UTC
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.

Signed-off-by: Ingo Rohloff <ingo.rohloff@lauterbach.com>
---
 drivers/usb/gadget/configfs.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Greg Kroah-Hartman Dec. 12, 2024, 11:32 a.m. UTC | #1
On Thu, Dec 12, 2024 at 12:10:04PM +0100, Ingo Rohloff wrote:
> 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.
> 
> Signed-off-by: Ingo Rohloff <ingo.rohloff@lauterbach.com>
> ---
>  drivers/usb/gadget/configfs.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)

Shouldn't this get a Fixes: tag and cc: stable?

thanks,

greg k-h
diff mbox series

Patch

diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index 6499a88d346c..fba2a56dae97 100644
--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -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);