Skip to content

Commit

Permalink
ALSA: info: Return error for invalid read/write
Browse files Browse the repository at this point in the history
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.

Cc: <[email protected]> # v4.2+
Signed-off-by: Takashi Iwai <[email protected]>
  • Loading branch information
tiwai committed Nov 8, 2016
1 parent 027a9fe commit 6809cd6
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 @@ -369,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);
}
Expand Down

0 comments on commit 6809cd6

Please sign in to comment.