summaryrefslogtreecommitdiff
path: root/sound/core/info.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2016-11-16 14:19:34 +0100
committerThomas Gleixner <tglx@linutronix.de>2016-11-16 14:19:34 +0100
commit7ce7f35b33eb42b6aa4cf176fa34372b21b8472b (patch)
tree12f3027003f1d7cce30f838265e4fab2d52c6cef /sound/core/info.c
parentf410770293a1fbc08906474c24104a7a11943eb6 (diff)
parent47bdf3378d62a627cfb8a54e1180c08d67078b61 (diff)
Merge branch 'x86/cpufeature' into x86/cache
Resolve the cpu/scattered conflict. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'sound/core/info.c')
-rw-r--r--sound/core/info.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/core/info.c b/sound/core/info.c
index 895362a696c9..8ab72e0f5932 100644
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -325,10 +325,15 @@ static ssize_t snd_info_text_entry_write(struct file *file,
size_t next;
int err = 0;
+ if (!entry->c.text.write)
+ return -EIO;
pos = *offset;
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) {
@@ -366,7 +371,9 @@ static int snd_info_seq_show(struct seq_file *seq, void *p)
struct snd_info_private_data *data = seq->private;
struct snd_info_entry *entry = data->entry;
- if (entry->c.text.read) {
+ if (!entry->c.text.read) {
+ return -EIO;
+ } else {
data->rbuffer->buffer = (char *)seq; /* XXX hack! */
entry->c.text.read(entry, data->rbuffer);
}