summaryrefslogtreecommitdiffstats
path: root/sys/security
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2012-11-30 23:03:51 +0000
committerpjd <pjd@FreeBSD.org>2012-11-30 23:03:51 +0000
commit83570705437a4313dcc7997b8b7a90a39bcabb54 (patch)
tree3db53a6aed8d60ee647876381794ebec8f47a2de /sys/security
parentdc3cd3e3a48e1501c08be6ab05483e6941eccb9f (diff)
downloadFreeBSD-src-83570705437a4313dcc7997b8b7a90a39bcabb54.zip
FreeBSD-src-83570705437a4313dcc7997b8b7a90a39bcabb54.tar.gz
IFp4 @208383:
Currently when we discover that trail file is greater than configured limit we send AUDIT_TRIGGER_ROTATE_KERNEL trigger to the auditd daemon once. If for some reason auditd didn't rotate trail file it will never be rotated. Change it by sending the trigger when trail file size grows by the configured limit. For example if the limit is 1MB, we will send trigger on 1MB, 2MB, 3MB, etc. This is also needed for the auditd change that will be committed soon where auditd may ignore the trigger - it might be ignored if kernel requests the trail file to be rotated too quickly (often than once a second) which would result in overwriting previous trail file. Sponsored by: FreeBSD Foundation (auditdistd) MFC after: 2 weeks
Diffstat (limited to 'sys/security')
-rw-r--r--sys/security/audit/audit_worker.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/security/audit/audit_worker.c b/sys/security/audit/audit_worker.c
index dd0eac7..caad5ac 100644
--- a/sys/security/audit/audit_worker.c
+++ b/sys/security/audit/audit_worker.c
@@ -189,11 +189,11 @@ audit_record_write(struct vnode *vp, struct ucred *cred, void *data,
* to the daemon. This is only approximate, which is fine as more
* records may be generated before the daemon rotates the file.
*/
- if ((audit_fstat.af_filesz != 0) && (audit_file_rotate_wait == 0) &&
- (audit_size >= audit_fstat.af_filesz)) {
+ if (audit_fstat.af_filesz != 0 &&
+ audit_size >= audit_fstat.af_filesz * (audit_file_rotate_wait + 1)) {
AUDIT_WORKER_LOCK_ASSERT();
- audit_file_rotate_wait = 1;
+ audit_file_rotate_wait++;
(void)audit_send_trigger(AUDIT_TRIGGER_ROTATE_KERNEL);
}
OpenPOWER on IntegriCloud