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@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