[alsa-devel] [PATCH v2] ALSA: control: Add sanity checks for user ctl id name string
There was no check about the id string of user control elements, so we accepted even a control element with an empty string, which is obviously bogus. This patch adds more sanity checks of id strings.
Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai tiwai@suse.de --- v1->v2: fix typos, thinkos
sound/core/control.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/core/control.c b/sound/core/control.c index 35324a8e83c8..eeb691d1911f 100644 --- a/sound/core/control.c +++ b/sound/core/control.c @@ -1170,6 +1170,10 @@ static int snd_ctl_elem_add(struct snd_ctl_file *file,
if (info->count < 1) return -EINVAL; + if (!*info->id.name) + return -EINVAL; + if (strnlen(info->id.name, sizeof(info->id.name)) >= sizeof(info->id.name)) + return -EINVAL; access = info->access == 0 ? SNDRV_CTL_ELEM_ACCESS_READWRITE : (info->access & (SNDRV_CTL_ELEM_ACCESS_READWRITE| SNDRV_CTL_ELEM_ACCESS_INACTIVE|
Iwai-san,
On Mar 12 2015 15:41, Takashi Iwai wrote:
There was no check about the id string of user control elements, so we accepted even a control element with an empty string, which is obviously bogus. This patch adds more sanity checks of id strings.
Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai tiwai@suse.de
v1->v2: fix typos, thinkos
sound/core/control.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/core/control.c b/sound/core/control.c index 35324a8e83c8..eeb691d1911f 100644 --- a/sound/core/control.c +++ b/sound/core/control.c @@ -1170,6 +1170,10 @@ static int snd_ctl_elem_add(struct snd_ctl_file *file,
if (info->count < 1) return -EINVAL;
- if (!*info->id.name)
return -EINVAL;
- if (strnlen(info->id.name, sizeof(info->id.name)) >= sizeof(info->id.name))
return -EINVAL;
Over 80 characters.
$ ./scripts/checkpatch.pl /tmp/patches/* WARNING: line over 80 characters #25: FILE: sound/core/control.c:1019: + if (strnlen(info->id.name, sizeof(info->id.name)) >= sizeof(info->id.name))
total: 0 errors, 1 warnings, 10 lines checked
access = info->access == 0 ? SNDRV_CTL_ELEM_ACCESS_READWRITE : (info->access & (SNDRV_CTL_ELEM_ACCESS_READWRITE| SNDRV_CTL_ELEM_ACCESS_INACTIVE|
Regards
Takashi Sakamoto
At Thu, 12 Mar 2015 15:57:05 +0900, Takashi Sakamoto wrote:
Iwai-san,
On Mar 12 2015 15:41, Takashi Iwai wrote:
There was no check about the id string of user control elements, so we accepted even a control element with an empty string, which is obviously bogus. This patch adds more sanity checks of id strings.
Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai tiwai@suse.de
v1->v2: fix typos, thinkos
sound/core/control.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/core/control.c b/sound/core/control.c index 35324a8e83c8..eeb691d1911f 100644 --- a/sound/core/control.c +++ b/sound/core/control.c @@ -1170,6 +1170,10 @@ static int snd_ctl_elem_add(struct snd_ctl_file *file,
if (info->count < 1) return -EINVAL;
- if (!*info->id.name)
return -EINVAL;
- if (strnlen(info->id.name, sizeof(info->id.name)) >= sizeof(info->id.name))
return -EINVAL;
Over 80 characters.
$ ./scripts/checkpatch.pl /tmp/patches/* WARNING: line over 80 characters #25: FILE: sound/core/control.c:1019:
- if (strnlen(info->id.name, sizeof(info->id.name)) >=
sizeof(info->id.name))
total: 0 errors, 1 warnings, 10 lines checked
It's no error, you may ignore it unless it becomes too ugly and unreadable.
Takashi
On Mar 12 2015 15:59, Takashi Iwai wrote:
At Thu, 12 Mar 2015 15:57:05 +0900, Takashi Sakamoto wrote:
Iwai-san,
On Mar 12 2015 15:41, Takashi Iwai wrote:
There was no check about the id string of user control elements, so we accepted even a control element with an empty string, which is obviously bogus. This patch adds more sanity checks of id strings.
Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai tiwai@suse.de
v1->v2: fix typos, thinkos
sound/core/control.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/core/control.c b/sound/core/control.c index 35324a8e83c8..eeb691d1911f 100644 --- a/sound/core/control.c +++ b/sound/core/control.c @@ -1170,6 +1170,10 @@ static int snd_ctl_elem_add(struct snd_ctl_file *file,
if (info->count < 1) return -EINVAL;
- if (!*info->id.name)
return -EINVAL;
- if (strnlen(info->id.name, sizeof(info->id.name)) >= sizeof(info->id.name))
return -EINVAL;
Over 80 characters.
$ ./scripts/checkpatch.pl /tmp/patches/* WARNING: line over 80 characters #25: FILE: sound/core/control.c:1019:
- if (strnlen(info->id.name, sizeof(info->id.name)) >=
sizeof(info->id.name))
total: 0 errors, 1 warnings, 10 lines checked
It's no error, you may ignore it unless it becomes too ugly and unreadable.
Hm. OK, I'll do the same thing for my patchsets if it contributes readability.
Reviewd-by: Takashi Sakamoto o-takashi@sakamocchi.jp
Takashi Sakamoto
participants (2)
-
Takashi Iwai
-
Takashi Sakamoto