ALSA: usb-audio: Convert the last strlcpy() usage
authorTakashi Iwai <tiwai@suse.de>
Fri, 15 Jan 2021 10:04:37 +0000 (11:04 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 15 Jan 2021 10:05:26 +0000 (11:05 +0100)
The last remaining usage of strlcpy() in USB-audio driver is the setup
of the card longname string.  Basically we need to know whether any
non-empty string is set or not, and no real length is needed.
Refactor the code and use strscpy() instead.  After this change,
strlcpy() is gone from all sound/* code.

Link: https://lore.kernel.org/r/20210115100437.20906-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/card.c

index 85e79b9ecb08fe7c7e5dd50782ecf9c92503432b..45407cb81b66ad936c3cccc0a0a1d45f6cb1c0bc 100644 (file)
@@ -514,18 +514,17 @@ static void usb_audio_make_longname(struct usb_device *dev,
                s = preset->vendor_name;
        else if (quirk && quirk->vendor_name)
                s = quirk->vendor_name;
+       *card->longname = 0;
        if (s && *s) {
-               len = strlcpy(card->longname, s, sizeof(card->longname));
+               strscpy(card->longname, s, sizeof(card->longname));
        } else {
                /* retrieve the vendor and device strings as longname */
                if (dev->descriptor.iManufacturer)
-                       len = usb_string(dev, dev->descriptor.iManufacturer,
-                                        card->longname, sizeof(card->longname));
-               else
-                       len = 0;
+                       usb_string(dev, dev->descriptor.iManufacturer,
+                                  card->longname, sizeof(card->longname));
                /* we don't really care if there isn't any vendor string */
        }
-       if (len > 0) {
+       if (*card->longname) {
                strim(card->longname);
                if (*card->longname)
                        strlcat(card->longname, " ", sizeof(card->longname));