Skip to content

Commit

Permalink
ALSA: info: Return error for invalid read/write
Browse files Browse the repository at this point in the history
commit 6809cd6 upstream.

Currently the ALSA proc handler allows read or write even if the proc
file were write-only or read-only.  It's mostly harmless, does thing
but allocating memory and ignores the input/output.  But it doesn't
tell user about the invalid use, and it's confusing and inconsistent
in comparison with other proc files.

This patch adds some sanity checks and let the proc handler returning
an -EIO error when the invalid read/write is performed.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
tiwai authored and gregkh committed Nov 18, 2016
1 parent 4dab3e4 commit c1ea2b3
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion sound/core/info.c
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,8 @@ 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;
Expand Down Expand Up @@ -366,7 +368,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);
}
Expand Down

0 comments on commit c1ea2b3

Please sign in to comment.