diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2008-11-12 18:37:41 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2008-12-09 02:27:38 -0500 |
commit | a64e64944f4b8ce3288519555dbaa0232414b8ac (patch) | |
tree | 6b37f5444c49379580b6b4fead84a75ca474d0ab /kernel/auditsc.c | |
parent | a3f07114e3359fb98683069ae397220e8992a24a (diff) | |
download | kernel-common-a64e64944f4b8ce3288519555dbaa0232414b8ac.tar.gz kernel-common-a64e64944f4b8ce3288519555dbaa0232414b8ac.tar.bz2 kernel-common-a64e64944f4b8ce3288519555dbaa0232414b8ac.zip |
[PATCH] return records for fork() both to child and parent
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'kernel/auditsc.c')
-rw-r--r-- | kernel/auditsc.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index cf5bc2f5f9c3..de8468050afa 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -1548,6 +1548,23 @@ void audit_syscall_entry(int arch, int major, context->ppid = 0; } +void audit_finish_fork(struct task_struct *child) +{ + struct audit_context *ctx = current->audit_context; + struct audit_context *p = child->audit_context; + if (!p || !ctx || !ctx->auditable) + return; + p->arch = ctx->arch; + p->major = ctx->major; + memcpy(p->argv, ctx->argv, sizeof(ctx->argv)); + p->ctime = ctx->ctime; + p->dummy = ctx->dummy; + p->auditable = ctx->auditable; + p->in_syscall = ctx->in_syscall; + p->filterkey = kstrdup(ctx->filterkey, GFP_KERNEL); + p->ppid = current->pid; +} + /** * audit_syscall_exit - deallocate audit context after a system call * @tsk: task being audited |