diff options
author | Steve Grubb <sgrubb@redhat.com> | 2006-06-12 07:48:28 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2006-06-20 05:25:29 -0400 |
commit | 41757106b9ca7867dafb2404d618f947b4786fd7 (patch) | |
tree | 6feff3fade7d842e58d535eef4f397ebfb8ae19e | |
parent | 9c937dcc71021f2dbf78f904f03d962dd9bcc130 (diff) |
[PATCH] make set_loginuid obey audit_enabled
Hi,
I was doing some testing and noticed that when the audit system was disabled,
I was still getting messages about the loginuid being set. The following patch
makes audit_set_loginuid look at in_syscall to determine if it should create
an audit event. The loginuid will continue to be set as long as there is a context.
Signed-off-by: Steve Grubb <sgrubb@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | kernel/auditsc.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 851ae0217e4b..b097ccb4eb7e 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c | |||
@@ -1290,18 +1290,23 @@ void auditsc_get_stamp(struct audit_context *ctx, | |||
1290 | */ | 1290 | */ |
1291 | int audit_set_loginuid(struct task_struct *task, uid_t loginuid) | 1291 | int audit_set_loginuid(struct task_struct *task, uid_t loginuid) |
1292 | { | 1292 | { |
1293 | if (task->audit_context) { | 1293 | struct audit_context *context = task->audit_context; |
1294 | struct audit_buffer *ab; | 1294 | |
1295 | 1295 | if (context) { | |
1296 | ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_LOGIN); | 1296 | /* Only log if audit is enabled */ |
1297 | if (ab) { | 1297 | if (context->in_syscall) { |
1298 | audit_log_format(ab, "login pid=%d uid=%u " | 1298 | struct audit_buffer *ab; |
1299 | "old auid=%u new auid=%u", | 1299 | |
1300 | task->pid, task->uid, | 1300 | ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_LOGIN); |
1301 | task->audit_context->loginuid, loginuid); | 1301 | if (ab) { |
1302 | audit_log_end(ab); | 1302 | audit_log_format(ab, "login pid=%d uid=%u " |
1303 | "old auid=%u new auid=%u", | ||
1304 | task->pid, task->uid, | ||
1305 | context->loginuid, loginuid); | ||
1306 | audit_log_end(ab); | ||
1307 | } | ||
1303 | } | 1308 | } |
1304 | task->audit_context->loginuid = loginuid; | 1309 | context->loginuid = loginuid; |
1305 | } | 1310 | } |
1306 | return 0; | 1311 | return 0; |
1307 | } | 1312 | } |