]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
usb: gadget: g_dnl: fix g_dnl_set_serialnumber()
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Wed, 22 Feb 2017 09:22:37 +0000 (11:22 +0200)
committerMarek Vasut <marex@denx.de>
Sun, 26 Feb 2017 12:24:30 +0000 (13:24 +0100)
instead of only copying if strlen(s) is less than 32 characters, let's
just copy at most 31 characters regardless of the size of
serial#. This will guarantee that we always have a serial number if
serial# environment variable is set to anything.

Note that without a proper serial number, USB Command Verifier fails
our test of Device Descriptor since we will claim to have a serial
number without really providing one when requested.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/gadget/g_dnl.c

index 45a484c4b72519273c817b6088abf0ce189a8a3e..4ba7c1da7cb0b4ba670a76a80d5689ced3132ad4 100644 (file)
@@ -49,8 +49,7 @@ static const char manufacturer[] = CONFIG_G_DNL_MANUFACTURER;
 void g_dnl_set_serialnumber(char *s)
 {
        memset(g_dnl_serial, 0, MAX_STRING_SERIAL);
-       if (strlen(s) < MAX_STRING_SERIAL)
-               strncpy(g_dnl_serial, s, strlen(s));
+       strncpy(g_dnl_serial, s, MAX_STRING_SERIAL - 1);
 }
 
 static struct usb_device_descriptor device_desc = {