ALSA: info: Limit the proc text input size
authorTakashi Iwai <tiwai@suse.de>
Sun, 30 Oct 2016 21:18:45 +0000 (22:18 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 18 Nov 2016 09:48:33 +0000 (10:48 +0100)
commit 027a9fe6835620422b6713892175716f3613dd9d upstream.

The ALSA proc handler allows currently the write in the unlimited size
until kmalloc() fails.  But basically the write is supposed to be only
for small inputs, mostly for one line inputs, and we don't have to
handle too large sizes at all.  Since the kmalloc error results in the
kernel warning, it's better to limit the size beforehand.

This patch adds the limit of 16kB, which must be large enough for the
currently existing code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/core/info.c

index dbef9edd4871a7182ac70db79255f6a93ffb1afe..8ab72e0f593292ac91aea0b06b70d89fc084bd3c 100644 (file)
@@ -331,6 +331,9 @@ static ssize_t snd_info_text_entry_write(struct file *file,
        if (!valid_pos(pos, count))
                return -EIO;
        next = pos + count;
+       /* don't handle too large text inputs */
+       if (next > 16 * 1024)
+               return -EIO;
        mutex_lock(&entry->access);
        buf = data->wbuffer;
        if (!buf) {