[PATCH v2] ALSA: control-led: use strscpy in set_led_id()
The use of strncpy() in the set_led_id() was incorrect. The len variable should use 'min(sizeof(buf2) - 1, count)' expression.
Use strscpy() function to simplify things and handle the error gracefully.
Reported-by: yang.yang29@zte.com.cn BugLink: https://lore.kernel.org/alsa-devel/202301091945513559977@zte.com.cn/ Cc: stable@vger.kernel.org Signed-off-by: Jaroslav Kysela perex@perex.cz
v1..v2: - remove min() expression which strips the last char --- sound/core/control_led.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/sound/core/control_led.c b/sound/core/control_led.c index f975cc85772b..3cadd40100f3 100644 --- a/sound/core/control_led.c +++ b/sound/core/control_led.c @@ -530,12 +530,11 @@ static ssize_t set_led_id(struct snd_ctl_led_card *led_card, const char *buf, si bool attach) { char buf2[256], *s, *os; - size_t len = max(sizeof(s) - 1, count); struct snd_ctl_elem_id id; int err;
- strncpy(buf2, buf, len); - buf2[len] = '\0'; + if (strscpy(buf2, buf, sizeof(buf2)) < 0) + return -E2BIG; memset(&id, 0, sizeof(id)); id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; s = buf2;
On Mon, 09 Jan 2023 16:01:18 +0100, Jaroslav Kysela wrote:
The use of strncpy() in the set_led_id() was incorrect. The len variable should use 'min(sizeof(buf2) - 1, count)' expression.
Use strscpy() function to simplify things and handle the error gracefully.
Reported-by: yang.yang29@zte.com.cn BugLink: https://lore.kernel.org/alsa-devel/202301091945513559977@zte.com.cn/
Let's use the normal Link tag instead of BugLink. The former is preferred.
Also, it'd be great if you can put the Fixes tag, too.
thanks,
Takashi
On 09. 01. 23 16:04, Takashi Iwai wrote:
On Mon, 09 Jan 2023 16:01:18 +0100, Jaroslav Kysela wrote:
The use of strncpy() in the set_led_id() was incorrect. The len variable should use 'min(sizeof(buf2) - 1, count)' expression.
Use strscpy() function to simplify things and handle the error gracefully.
Reported-by: yang.yang29@zte.com.cn BugLink: https://lore.kernel.org/alsa-devel/202301091945513559977@zte.com.cn/
Let's use the normal Link tag instead of BugLink. The former is preferred.
Also, it'd be great if you can put the Fixes tag, too.
Done. Sent v3.
Thanks, Jaroslav
participants (2)
-
Jaroslav Kysela
-
Takashi Iwai