summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2016-10-30 22:18:45 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-11-18 10:51:43 +0100
commit9386a722d2500b3e9dc8751c434a6c3c5e4c3f5c (patch)
treea947f72ea0279ad9bf546305cba81b02b36b8fbc /sound
parentc3ea1b15b71ec829759cfbce8338b72fe765fd94 (diff)
downloadlwn-9386a722d2500b3e9dc8751c434a6c3c5e4c3f5c.tar.gz
lwn-9386a722d2500b3e9dc8751c434a6c3c5e4c3f5c.zip
ALSA: info: Limit the proc text input size
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>
Diffstat (limited to 'sound')
-rw-r--r--sound/core/info.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/core/info.c b/sound/core/info.c
index dbef9edd4871..8ab72e0f5932 100644
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -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) {