Pārlūkot izejas kodu

ALSA: control: Warn if too long string is passed to snd_ctl_enum_info()

This allows us to catch the bugs in drivers easily.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 10 gadi atpakaļ
vecāks
revīzija
df803e1389
1 mainītis faili ar 3 papildinājumiem un 0 dzēšanām
  1. 3 0
      sound/core/control.c

+ 3 - 0
sound/core/control.c

@@ -1747,6 +1747,9 @@ int snd_ctl_enum_info(struct snd_ctl_elem_info *info, unsigned int channels,
 	info->value.enumerated.items = items;
 	if (info->value.enumerated.item >= items)
 		info->value.enumerated.item = items - 1;
+	WARN(strlen(names[info->value.enumerated.item]) >= sizeof(info->value.enumerated.name),
+	     "ALSA: too long item name '%s'\n",
+	     names[info->value.enumerated.item]);
 	strlcpy(info->value.enumerated.name,
 		names[info->value.enumerated.item],
 		sizeof(info->value.enumerated.name));