Skip to content

Commit 72586c6

Browse files
labbottgregkh
authored andcommitted
n_tty: Fix auditing support for cannonical mode
Commit 32f1352 ("n_tty: Line copy to user buffer in canonical mode") changed cannonical mode copying to use copy_to_user but missed adding the call to the audit framework. Add in the appropriate functions to get audit support. Fixes: 32f1352 ("n_tty: Line copy to user buffer in canonical mode") Reported-by: Miloslav Trmač <[email protected]> Signed-off-by: Laura Abbott <[email protected]> Reviewed-by: Peter Hurley <[email protected]> Cc: stable <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 9809889 commit 72586c6

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

drivers/tty/n_tty.c

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,17 @@ static inline int tty_put_user(struct tty_struct *tty, unsigned char x,
162162
return put_user(x, ptr);
163163
}
164164

165+
static inline int tty_copy_to_user(struct tty_struct *tty,
166+
void __user *to,
167+
const void *from,
168+
unsigned long n)
169+
{
170+
struct n_tty_data *ldata = tty->disc_data;
171+
172+
tty_audit_add_data(tty, to, n, ldata->icanon);
173+
return copy_to_user(to, from, n);
174+
}
175+
165176
/**
166177
* n_tty_kick_worker - start input worker (if required)
167178
* @tty: terminal
@@ -2084,12 +2095,12 @@ static int canon_copy_from_read_buf(struct tty_struct *tty,
20842095
__func__, eol, found, n, c, size, more);
20852096

20862097
if (n > size) {
2087-
ret = copy_to_user(*b, read_buf_addr(ldata, tail), size);
2098+
ret = tty_copy_to_user(tty, *b, read_buf_addr(ldata, tail), size);
20882099
if (ret)
20892100
return -EFAULT;
2090-
ret = copy_to_user(*b + size, ldata->read_buf, n - size);
2101+
ret = tty_copy_to_user(tty, *b + size, ldata->read_buf, n - size);
20912102
} else
2092-
ret = copy_to_user(*b, read_buf_addr(ldata, tail), n);
2103+
ret = tty_copy_to_user(tty, *b, read_buf_addr(ldata, tail), n);
20932104

20942105
if (ret)
20952106
return -EFAULT;

0 commit comments

Comments
 (0)