diff options
author | pjd <pjd@FreeBSD.org> | 2012-11-30 23:18:49 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2012-11-30 23:18:49 +0000 |
commit | 632d7191a2034f3e655f731e7828c7ddd32bc0e5 (patch) | |
tree | 689c46974acab0658b3c913c45fe97b40d9cf687 /sys/security/audit/audit_private.h | |
parent | 07398249f32ac853914c1fb2f42644d1dadf456f (diff) | |
download | FreeBSD-src-632d7191a2034f3e655f731e7828c7ddd32bc0e5.zip FreeBSD-src-632d7191a2034f3e655f731e7828c7ddd32bc0e5.tar.gz |
IFp4 @208451:
Fix path handling for *at() syscalls.
Before the change directory descriptor was totally ignored,
so the relative path argument was appended to current working
directory path and not to the path provided by descriptor, thus
wrong paths were stored in audit logs.
Now that we use directory descriptor in vfs_lookup, move
AUDIT_ARG_UPATH1() and AUDIT_ARG_UPATH2() calls to the place where
we hold file descriptors table lock, so we are sure paths will
be resolved according to the same directory in audit record and
in actual operation.
Sponsored by: FreeBSD Foundation (auditdistd)
Reviewed by: rwatson
MFC after: 2 weeks
Diffstat (limited to 'sys/security/audit/audit_private.h')
-rw-r--r-- | sys/security/audit/audit_private.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/security/audit/audit_private.h b/sys/security/audit/audit_private.h index 92a0729..ad931c0 100644 --- a/sys/security/audit/audit_private.h +++ b/sys/security/audit/audit_private.h @@ -388,7 +388,8 @@ au_event_t audit_flags_and_error_to_openevent(int oflags, int error); au_event_t audit_flags_and_error_to_openatevent(int oflags, int error); au_event_t audit_msgctl_to_event(int cmd); au_event_t audit_semctl_to_event(int cmr); -void audit_canon_path(struct thread *td, char *path, char *cpath); +void audit_canon_path(struct thread *td, int dirfd, char *path, + char *cpath); au_event_t auditon_command_event(int cmd); /* |