ALSA: Use strlcpy() instead of strncpy()
authorTakashi Iwai <tiwai@suse.de>
Tue, 29 Oct 2013 14:26:12 +0000 (15:26 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 29 Oct 2013 14:26:12 +0000 (15:26 +0100)
We tend to make stupid mistakes with strncpy().  Let's take a safer
one, strlcpy().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/arm/pxa2xx-ac97.c
sound/i2c/other/ak4xxx-adda.c
sound/pci/cs5535audio/cs5535audio_olpc.c
sound/pci/ice1712/psc724.c
sound/pci/ice1712/wm8776.c
sound/pci/rme9652/hdspm.c

index 5066a3768b2841a4f46d8cbb8116b4d8276334da..9a2ac1e0f77addbe779e919c83cf61ad22368111 100644 (file)
@@ -185,7 +185,7 @@ static int pxa2xx_ac97_probe(struct platform_device *dev)
                goto err;
 
        card->dev = &dev->dev;
-       strncpy(card->driver, dev->dev.driver->name, sizeof(card->driver));
+       strlcpy(card->driver, dev->dev.driver->name, sizeof(card->driver));
 
        ret = pxa2xx_pcm_new(card, &pxa2xx_ac97_pcm_client, &pxa2xx_ac97_pcm);
        if (ret)
index ed726d1569e8d3e9dffd49ee2af31fc79b7b7bc8..f3735e64791cb2d76a7240d2f7b937b535d624c0 100644 (file)
@@ -583,7 +583,7 @@ static int ak4xxx_capture_source_info(struct snd_kcontrol *kcontrol,
        if (idx >= num_names)
                return -EINVAL;
        input_names = ak->adc_info[mixer_ch].input_names;
-       strncpy(uinfo->value.enumerated.name, input_names[idx],
+       strlcpy(uinfo->value.enumerated.name, input_names[idx],
                sizeof(uinfo->value.enumerated.name));
        return 0;
 }
index da1cb9c4c76c2e24b46a477a93d6ff1d926d39a3..e6a44507d55700ef689d6b98438452a53b008a24 100644 (file)
@@ -161,13 +161,13 @@ int olpc_quirks(struct snd_card *card, struct snd_ac97 *ac97)
        /* drop the original AD1888 HPF control */
        memset(&elem, 0, sizeof(elem));
        elem.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
-       strncpy(elem.name, "High Pass Filter Enable", sizeof(elem.name));
+       strlcpy(elem.name, "High Pass Filter Enable", sizeof(elem.name));
        snd_ctl_remove_id(card, &elem);
 
        /* drop the original V_REFOUT control */
        memset(&elem, 0, sizeof(elem));
        elem.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
-       strncpy(elem.name, "V_REFOUT Enable", sizeof(elem.name));
+       strlcpy(elem.name, "V_REFOUT Enable", sizeof(elem.name));
        snd_ctl_remove_id(card, &elem);
 
        /* add the OLPC-specific controls */
index 302ac6ddd545b646748f6b8abfe10ab592a6c027..4019cf27d1177c221cec4e45be0d7cafe6edfff4 100644 (file)
@@ -203,12 +203,12 @@ static void psc724_set_jack_state(struct snd_ice1712 *ice, bool hp_connected)
        /* notify about master speaker mute change */
        memset(&elem_id, 0, sizeof(elem_id));
        elem_id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
-       strncpy(elem_id.name, "Master Speakers Playback Switch",
+       strlcpy(elem_id.name, "Master Speakers Playback Switch",
                                                sizeof(elem_id.name));
        kctl = snd_ctl_find_id(ice->card, &elem_id);
        snd_ctl_notify(ice->card, SNDRV_CTL_EVENT_MASK_VALUE, &kctl->id);
        /* and headphone mute change */
-       strncpy(elem_id.name, spec->wm8776.ctl[WM8776_CTL_HP_SW].name,
+       strlcpy(elem_id.name, spec->wm8776.ctl[WM8776_CTL_HP_SW].name,
                                                sizeof(elem_id.name));
        kctl = snd_ctl_find_id(ice->card, &elem_id);
        snd_ctl_notify(ice->card, SNDRV_CTL_EVENT_MASK_VALUE, &kctl->id);
index a3c05fe5daf93829a0eed48204fa128d9de914fd..5227cb08247f7e97dd47c3c19144b49b4f11820d 100644 (file)
@@ -52,7 +52,7 @@ static void snd_wm8776_activate_ctl(struct snd_wm8776 *wm,
        unsigned int index_offset;
 
        memset(&elem_id, 0, sizeof(elem_id));
-       strncpy(elem_id.name, ctl_name, sizeof(elem_id.name));
+       strlcpy(elem_id.name, ctl_name, sizeof(elem_id.name));
        elem_id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
        kctl = snd_ctl_find_id(card, &elem_id);
        if (!kctl)
index 2907e68150cb1ca1adb0c40a5a573ef7af18394b..e98dc008de0b91e4b7e73f776081893fafa04084 100644 (file)
@@ -6400,7 +6400,7 @@ static int snd_hdspm_hwdep_ioctl(struct snd_hwdep *hw, struct file *file,
                memset(&hdspm_version, 0, sizeof(hdspm_version));
 
                hdspm_version.card_type = hdspm->io_type;
-               strncpy(hdspm_version.cardname, hdspm->card_name,
+               strlcpy(hdspm_version.cardname, hdspm->card_name,
                                sizeof(hdspm_version.cardname));
                hdspm_version.serial = hdspm->serial;
                hdspm_version.firmware_rev = hdspm->firmware_rev;