[PATCH 3/8] audit: Implement audit_log_tty()

Stefan Berger
2018-05-24T20:11:18Z

Implement audit_log_tty() so that IMA can add tty= to its audit records.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
---
include/linux/audit.h | 5 +++++
kernel/audit.c | 8 ++++++++
2 files changed, 13 insertions(+)

diff --git a/include/linux/audit.h b/include/linux/audit.h
index 90aa63ddc9be..2deb76c74d10 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -154,6 +154,7 @@ extern void audit_log_task_info(struct audit_buffer *ab,
struct task_struct *tsk);

extern int audit_update_lsm_rules(void);
+extern void audit_log_tty(struct audit_buffer *ab, struct task_struct *tsk);

/* Private API (for audit.c only) */
extern int audit_rule_change(int type, int seq, void *data, size_t datasz);
@@ -202,6 +203,10 @@ static inline int audit_log_task_context(struct audit_buffer *ab)
static inline void audit_log_task_info(struct audit_buffer *ab,
struct task_struct *tsk)
{ }
+
+static inline void audit_log_tty(struct audit_buffer *ab,
+ struct task_struct *tsk)
+{ }
#define audit_enabled 0
#endif /* CONFIG_AUDIT */

diff --git a/kernel/audit.c b/kernel/audit.c
index 670665c6e2a6..fa54695962b4 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -2305,6 +2305,14 @@ void audit_log_task_info(struct audit_buffer *ab, struct task_struct *tsk)
}
EXPORT_SYMBOL(audit_log_task_info);

+void audit_log_tty(struct audit_buffer *ab, struct task_struct *tsk)
+{
+ struct tty_struct *tty = audit_get_tty(tsk);
+
+ audit_log_format(ab, " tty=%s", tty ? tty_name(tty) : "(none)");
+ audit_put_tty(tty);
+}
+
/**
* audit_log_link_denied - report a link restriction denial
* @operation: specific link operation
--
2.13.6