Update of /cvsroot/alsa/alsa-kernel/usb
In directory sc8-pr-cvs1:/tmp/cvs-serv31308/usb

Modified Files:
        usbaudio.c usbmixer.c 
Log Message:
Added strlcpy() strlcat() functions

Index: usbaudio.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/usb/usbaudio.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- usbaudio.c  13 May 2003 10:44:09 -0000      1.50
+++ usbaudio.c  30 May 2003 12:28:36 -0000      1.51
@@ -2544,8 +2544,7 @@
                len = 0;
        if (len <= 0) {
                if (quirk && quirk->product_name) {
-                       strncpy(card->shortname, quirk->product_name, 
sizeof(card->shortname) - 1);
-                       card->shortname[sizeof(card->shortname) - 1] = '\0';
+                       strlcpy(card->shortname, quirk->product_name, 
sizeof(card->shortname));
                } else {
                        sprintf(card->shortname, "USB Device %#04x:%#04x",
                                dev->descriptor.idVendor, dev->descriptor.idProduct);
@@ -2555,37 +2554,32 @@
        /* retrieve the vendor and device strings as longname */
        if (dev->descriptor.iManufacturer)
                len = usb_string(dev, dev->descriptor.iManufacturer,
-                                card->longname, sizeof(card->longname) - 1);
+                                card->longname, sizeof(card->longname));
        else
                len = 0;
        if (len <= 0) {
                if (quirk && quirk->vendor_name) {
-                       strncpy(card->longname, quirk->vendor_name, 
sizeof(card->longname) - 2);
-                       card->longname[sizeof(card->longname) - 2] = '\0';
-                       len = strlen(card->longname);
+                       len = strlcpy(card->longname, quirk->vendor_name, 
sizeof(card->longname));
                } else {
                        len = 0;
                }
        }
-       if (len > 0) {
-               card->longname[len] = ' ';
-               len++;
-       }
-       card->longname[len] = '\0';
+       if (len > 0)
+               strlcat(card->longname, ' ', sizeof(card->longname));
+
+       len = strlen(card->longname);
+
        if ((!dev->descriptor.iProduct
             || usb_string(dev, dev->descriptor.iProduct,
                           card->longname + len, sizeof(card->longname) - len) <= 0)
            && quirk && quirk->product_name) {
-               strncpy(card->longname + len, quirk->product_name, 
sizeof(card->longname) - len - 1);
-               card->longname[sizeof(card->longname) - 1] = '\0';
+               strlcat(card->longname, quirk->product_name, sizeof(card->longname));
        }
-       /* add device path to longname */
-       len = strlen(card->longname);
-       if (sizeof(card->longname) - len > 10) {
-               strcpy(card->longname + len, " at ");
-               len += 4;
+
+       len = strlcat(card->longname, " at ", sizeof(card->longname));
+
+       if (len < sizeof(card->longname))
                usb_make_path(dev, card->longname + len, sizeof(card->longname) - len);
-       }
 
        *rchip = chip;
        return 0;

Index: usbmixer.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/usb/usbmixer.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- usbmixer.c  13 May 2003 10:44:09 -0000      1.18
+++ usbmixer.c  30 May 2003 12:28:36 -0000      1.19
@@ -164,9 +164,7 @@
                if (p->id == unitid && p->name &&
                    (! control || ! p->control || control == p->control)) {
                        buflen--;
-                       strncpy(buf, p->name, buflen);
-                       buf[buflen] = 0;
-                       return strlen(buf);
+                       return strlcpy(buf, p->name, buflen);
                }
        }
        return 0;
@@ -835,7 +833,8 @@
                        if (! len)
                                len = get_term_name(state, &state->oterm, 
kctl->id.name, sizeof(kctl->id.name), 1);
                        if (! len)
-                               len = sprintf(kctl->id.name, "Feature %d", unitid);
+                               len = snprintf(kctl->id.name, sizeof(kctl->id.name),
+                                              "Feature %d", unitid);
                }
                /* determine the stream direction:
                 * if the connected output is USB stream, then it's likely a
@@ -843,24 +842,19 @@
                 */
                if (! mapped_name && ! (state->oterm.type >> 16)) {
                        if ((state->oterm.type & 0xff00) == 0x0100) {
-                               if (len + 8 < sizeof(kctl->id.name)) {
-                                       strcpy(kctl->id.name + len, " Capture");
-                                       len += 8;
-                               }
+                               len = strlcat(kctl->id.name, " Capture", 
sizeof(kctl->id.name));
                        } else {
-                               if (len + 9 < sizeof(kctl->id.name)) {
-                                       strcpy(kctl->id.name + len, " Playback");
-                                       len += 9;
-                               }
+                               len = strlcat(kctl->id.name + len, " Playback", 
sizeof(kctl->id.name));
                        }
                }
-               if (len + 7 < sizeof(kctl->id.name))
-                       strcpy(kctl->id.name + len, control == USB_FEATURE_MUTE ? " 
Switch" : " Volume");
+               strlcat(kctl->id.name + len, control == USB_FEATURE_MUTE ? " Switch" : 
" Volume",
+                       sizeof(kctl->id.name));
                break;
 
        default:
                if (! len)
-                       strcpy(kctl->id.name, audio_feature_info[control-1].name);
+                       strlcpy(kctl->id.name, audio_feature_info[control-1].name,
+                               sizeof(kctl->id.name));
                break;
        }
 
@@ -991,8 +985,7 @@
                len = get_term_name(state, &iterm, kctl->id.name, 
sizeof(kctl->id.name), 0);
        if (! len)
                len = sprintf(kctl->id.name, "Mixer Source %d", in_ch);
-       if (len + 7 < sizeof(kctl->id.name))
-               strcpy(kctl->id.name + len, " Volume");
+       strlcat(kctl->id.name + len, " Volume", sizeof(kctl->id.name));
 
        snd_printdd(KERN_INFO "[%d] MU [%s] ch = %d, val = %d/%d\n",
                    cval->id, kctl->id.name, cval->channels, cval->min, cval->max);
@@ -1220,22 +1213,18 @@
                if (check_mapped_name(state, unitid, cval->control, kctl->id.name, 
sizeof(kctl->id.name)))
                        ;
                else if (info->name)
-                       strcpy(kctl->id.name, info->name);
+                       strlcpy(kctl->id.name, info->name, sizeof(kctl->id.name));
                else {
                        nameid = dsc[12 + num_ins + dsc[11 + num_ins]];
                        len = 0;
                        if (nameid)
                                len = snd_usb_copy_string_desc(state, nameid, 
kctl->id.name, sizeof(kctl->id.name));
-                       if (! len) {
-                               strncpy(kctl->id.name, name, sizeof(kctl->id.name) - 
1);
-                               kctl->id.name[sizeof(kctl->id.name)-1] = 0;
-                       }
-               }
-               len = strlen(kctl->id.name);
-               if (len + sizeof(valinfo->suffix) + 1 < sizeof(kctl->id.name)) {
-                       kctl->id.name[len] = ' ';
-                       strcpy(kctl->id.name + len + 1, valinfo->suffix);
+                       if (! len)
+                               strlcpy(kctl->id.name, name, sizeof(kctl->id.name));
                }
+               strlcat(kctl->id.name, ' ', sizeof(kctl->id.name));
+               strlcat(kctl->id.name, valinfo->suffix, sizeof(kctl->id.name));
+
                snd_printdd(KERN_INFO "[%d] PU [%s] ch = %d, val = %d/%d\n",
                            cval->id, kctl->id.name, cval->channels, cval->min, 
cval->max);
                if ((err = add_control_to_empty(state->chip->card, kctl)) < 0)
@@ -1436,14 +1425,12 @@
                len = get_term_name(state, &state->oterm,
                                    kctl->id.name, sizeof(kctl->id.name), 0);
                if (! len)
-                       len = sprintf(kctl->id.name, "USB");
-               if ((state->oterm.type & 0xff00) == 0x0100) {
-                       if (len + 15 < sizeof(kctl->id.name))
-                               strcpy(kctl->id.name + len, " Capture Source");
-               } else {
-                       if (len + 16 < sizeof(kctl->id.name))
-                               strcpy(kctl->id.name + len, " Playback Source");
-               }
+                       strlcpy(kctl->id.name, "USB", sizeof(kctl->id.name));
+
+               if ((state->oterm.type & 0xff00) == 0x0100)
+                       strlcat(kctl->id.name, " Capture Source", 
sizeof(kctl->id.name));
+               else
+                       strlcat(kctl->id.name, " Playback Source", 
sizeof(kctl->id.name));
        }
 
        snd_printdd(KERN_INFO "[%d] SU [%s] items = %d\n",



-------------------------------------------------------
This SF.net email is sponsored by: eBay
Get office equipment for less on eBay!
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to