Commit 6b2a3d62 authored by Peter Hurley's avatar Peter Hurley Committed by Greg Kroah-Hartman

tty: audit: Fix audit source

The data to audit/record is in the 'from' buffer (ie., the input
read buffer).

Fixes: 72586c60 ("n_tty: Fix auditing support for cannonical mode")
Cc: stable <stable@vger.kernel.org> # 4.1+
Cc: Miloslav Trmač <mitr@redhat.com>
Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
Acked-by: default avatarLaura Abbott <labbott@fedoraproject.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f356d7a7
...@@ -169,7 +169,7 @@ static inline int tty_copy_to_user(struct tty_struct *tty, ...@@ -169,7 +169,7 @@ static inline int tty_copy_to_user(struct tty_struct *tty,
{ {
struct n_tty_data *ldata = tty->disc_data; struct n_tty_data *ldata = tty->disc_data;
tty_audit_add_data(tty, to, n, ldata->icanon); tty_audit_add_data(tty, from, n, ldata->icanon);
return copy_to_user(to, from, n); return copy_to_user(to, from, n);
} }
......
...@@ -265,7 +265,7 @@ static struct tty_audit_buf *tty_audit_buf_get(struct tty_struct *tty, ...@@ -265,7 +265,7 @@ static struct tty_audit_buf *tty_audit_buf_get(struct tty_struct *tty,
* *
* Audit @data of @size from @tty, if necessary. * Audit @data of @size from @tty, if necessary.
*/ */
void tty_audit_add_data(struct tty_struct *tty, unsigned char *data, void tty_audit_add_data(struct tty_struct *tty, const void *data,
size_t size, unsigned icanon) size_t size, unsigned icanon)
{ {
struct tty_audit_buf *buf; struct tty_audit_buf *buf;
......
...@@ -607,7 +607,7 @@ extern void n_tty_inherit_ops(struct tty_ldisc_ops *ops); ...@@ -607,7 +607,7 @@ extern void n_tty_inherit_ops(struct tty_ldisc_ops *ops);
/* tty_audit.c */ /* tty_audit.c */
#ifdef CONFIG_AUDIT #ifdef CONFIG_AUDIT
extern void tty_audit_add_data(struct tty_struct *tty, unsigned char *data, extern void tty_audit_add_data(struct tty_struct *tty, const void *data,
size_t size, unsigned icanon); size_t size, unsigned icanon);
extern void tty_audit_exit(void); extern void tty_audit_exit(void);
extern void tty_audit_fork(struct signal_struct *sig); extern void tty_audit_fork(struct signal_struct *sig);
...@@ -615,8 +615,8 @@ extern void tty_audit_tiocsti(struct tty_struct *tty, char ch); ...@@ -615,8 +615,8 @@ extern void tty_audit_tiocsti(struct tty_struct *tty, char ch);
extern void tty_audit_push(struct tty_struct *tty); extern void tty_audit_push(struct tty_struct *tty);
extern int tty_audit_push_current(void); extern int tty_audit_push_current(void);
#else #else
static inline void tty_audit_add_data(struct tty_struct *tty, static inline void tty_audit_add_data(struct tty_struct *tty, const void *data,
unsigned char *data, size_t size, unsigned icanon) size_t size, unsigned icanon)
{ {
} }
static inline void tty_audit_tiocsti(struct tty_struct *tty, char ch) static inline void tty_audit_tiocsti(struct tty_struct *tty, char ch)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment