diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2013-03-19 03:02:25 -0400 |
---|---|---|
committer | Eric Paris <eparis@redhat.com> | 2014-01-13 22:26:48 -0500 |
commit | ca24a23ebca17d9d0f2afde4ee49cd810bccc8d7 (patch) | |
tree | 9049f1e4911b21c181b3dcb435b5c75c8e18142c /kernel | |
parent | fc582aef7dcc27a7120cf232c1e76c569c7b6eab (diff) |
audit: Simplify and correct audit_log_capset
- Always report the current process as capset now always only works on
the current process. This prevents reporting 0 or a random pid in
a random pid namespace.
- Don't bother to pass the pid as is available.
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
(cherry picked from commit bcc85f0af31af123e32858069eb2ad8f39f90e67)
(cherry picked from commit f911cac4556a7a23e0b3ea850233d13b32328692)
Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
[eparis: fix build error when audit disabled]
Signed-off-by: Eric Paris <eparis@redhat.com>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/auditsc.c | 6 | ||||
-rw-r--r-- | kernel/capability.c | 2 |
2 files changed, 3 insertions, 5 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 90594c9f7552..df1e685809e1 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c | |||
@@ -2321,18 +2321,16 @@ int __audit_log_bprm_fcaps(struct linux_binprm *bprm, | |||
2321 | 2321 | ||
2322 | /** | 2322 | /** |
2323 | * __audit_log_capset - store information about the arguments to the capset syscall | 2323 | * __audit_log_capset - store information about the arguments to the capset syscall |
2324 | * @pid: target pid of the capset call | ||
2325 | * @new: the new credentials | 2324 | * @new: the new credentials |
2326 | * @old: the old (current) credentials | 2325 | * @old: the old (current) credentials |
2327 | * | 2326 | * |
2328 | * Record the aguments userspace sent to sys_capset for later printing by the | 2327 | * Record the aguments userspace sent to sys_capset for later printing by the |
2329 | * audit system if applicable | 2328 | * audit system if applicable |
2330 | */ | 2329 | */ |
2331 | void __audit_log_capset(pid_t pid, | 2330 | void __audit_log_capset(const struct cred *new, const struct cred *old) |
2332 | const struct cred *new, const struct cred *old) | ||
2333 | { | 2331 | { |
2334 | struct audit_context *context = current->audit_context; | 2332 | struct audit_context *context = current->audit_context; |
2335 | context->capset.pid = pid; | 2333 | context->capset.pid = task_pid_nr(current); |
2336 | context->capset.cap.effective = new->cap_effective; | 2334 | context->capset.cap.effective = new->cap_effective; |
2337 | context->capset.cap.inheritable = new->cap_effective; | 2335 | context->capset.cap.inheritable = new->cap_effective; |
2338 | context->capset.cap.permitted = new->cap_permitted; | 2336 | context->capset.cap.permitted = new->cap_permitted; |
diff --git a/kernel/capability.c b/kernel/capability.c index 4e66bf9275b0..34019c57888d 100644 --- a/kernel/capability.c +++ b/kernel/capability.c | |||
@@ -277,7 +277,7 @@ SYSCALL_DEFINE2(capset, cap_user_header_t, header, const cap_user_data_t, data) | |||
277 | if (ret < 0) | 277 | if (ret < 0) |
278 | goto error; | 278 | goto error; |
279 | 279 | ||
280 | audit_log_capset(pid, new, current_cred()); | 280 | audit_log_capset(new, current_cred()); |
281 | 281 | ||
282 | return commit_creds(new); | 282 | return commit_creds(new); |
283 | 283 | ||