[alsa-devel] [PATCH 2/2] ALSA: snd-usb: use strncpy() in mixer_quirks.c
Takashi Iwai
tiwai at suse.de
Sun Oct 19 11:38:58 CEST 2014
At Sun, 19 Oct 2014 09:11:26 +0200,
Daniel Mack wrote:
>
> Out of principles, use strncpy() in favor of strcpy().
> That is, however, an insignificant detail here.
>
> Signed-off-by: Daniel Mack <daniel at zonque.org>
Well, blindly doing this isn't optimal, IMO.
First off, strlcpy() is a better one. And, in the code you patched,
we already know all strings to be passed. That is, if anything is
over the buffer size, it's a clear bug. This can be caught by static
analyzers, or put some debug codes (either for build time or compile
time) instead of silently trimming the string.
thanks,
Takashi
> ---
> sound/usb/mixer_quirks.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c
> index f119a41..f406305 100644
> --- a/sound/usb/mixer_quirks.c
> +++ b/sound/usb/mixer_quirks.c
> @@ -446,8 +446,9 @@ static int snd_emu0204_ch_switch_info(struct snd_kcontrol *kcontrol,
> uinfo->value.enumerated.items = 2;
> if (uinfo->value.enumerated.item > 1)
> uinfo->value.enumerated.item = 1;
> - strcpy(uinfo->value.enumerated.name,
> - texts[uinfo->value.enumerated.item]);
> + strncpy(uinfo->value.enumerated.name,
> + texts[uinfo->value.enumerated.item],
> + sizeof(uinfo->value.enumerated.name) - 1);
>
> return 0;
> }
> --
> 2.1.0
>
More information about the Alsa-devel
mailing list