| From 6b2a3d628aa752f0ab825fc6d4d07b09e274d1c1 Mon Sep 17 00:00:00 2001 |
| From: Peter Hurley <peter@hurleysoftware.com> |
| Date: Sun, 8 Nov 2015 08:52:31 -0500 |
| Subject: tty: audit: Fix audit source |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Peter Hurley <peter@hurleysoftware.com> |
| |
| commit 6b2a3d628aa752f0ab825fc6d4d07b09e274d1c1 upstream. |
| |
| The data to audit/record is in the 'from' buffer (ie., the input |
| read buffer). |
| |
| Fixes: 72586c6061ab ("n_tty: Fix auditing support for cannonical mode") |
| Cc: Miloslav Trmač <mitr@redhat.com> |
| Signed-off-by: Peter Hurley <peter@hurleysoftware.com> |
| Acked-by: Laura Abbott <labbott@fedoraproject.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/tty/n_tty.c | 2 +- |
| drivers/tty/tty_audit.c | 2 +- |
| include/linux/tty.h | 6 +++--- |
| 3 files changed, 5 insertions(+), 5 deletions(-) |
| |
| --- a/drivers/tty/n_tty.c |
| +++ b/drivers/tty/n_tty.c |
| @@ -169,7 +169,7 @@ static inline int tty_copy_to_user(struc |
| { |
| 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); |
| } |
| |
| --- a/drivers/tty/tty_audit.c |
| +++ b/drivers/tty/tty_audit.c |
| @@ -265,7 +265,7 @@ static struct tty_audit_buf *tty_audit_b |
| * |
| * 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) |
| { |
| struct tty_audit_buf *buf; |
| --- a/include/linux/tty.h |
| +++ b/include/linux/tty.h |
| @@ -605,7 +605,7 @@ extern void n_tty_inherit_ops(struct tty |
| |
| /* tty_audit.c */ |
| #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); |
| extern void tty_audit_exit(void); |
| extern void tty_audit_fork(struct signal_struct *sig); |
| @@ -613,8 +613,8 @@ extern void tty_audit_tiocsti(struct tty |
| extern void tty_audit_push(struct tty_struct *tty); |
| extern int tty_audit_push_current(void); |
| #else |
| -static inline void tty_audit_add_data(struct tty_struct *tty, |
| - unsigned char *data, size_t size, unsigned icanon) |
| +static inline void tty_audit_add_data(struct tty_struct *tty, const void *data, |
| + size_t size, unsigned icanon) |
| { |
| } |
| static inline void tty_audit_tiocsti(struct tty_struct *tty, char ch) |