PERFORCE change 93199 for review

Robert Watson rwatson at FreeBSD.org
Sun Mar 12 15:39:09 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=93199

Change 93199 by rwatson at rwatson_zoo on 2006/03/12 15:36:37

	Change send_trigger() prototype to return an int, so that user
	space callers can tell if the message was successfully placed
	in the trigger queue.  This isn't quite the same as it being
	successfully received, but is close enough that we can generate
	a more useful warning message in audit(8).

Affected files ...

.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#17 edit
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#20 edit
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#11 edit
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#9 edit

Differences ...

==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.c#17 (text+ko) ====

@@ -307,7 +307,7 @@
 	 * then kindly suggest to the audit daemon to do something.
 	 */
 	if (mnt_stat->f_bfree < AUDIT_HARD_LIMIT_FREE_BLOCKS) {
-		send_trigger(AUDIT_TRIGGER_NO_SPACE);
+		(void)send_trigger(AUDIT_TRIGGER_NO_SPACE);
 		/* Hopefully userspace did something about all the previous
 		 * triggers that were sent prior to this critical condition.
 		 * If fail-stop is set, then we're done; goodnight Gracie.
@@ -330,7 +330,7 @@
 			temp = mnt_stat->f_blocks / (100 / 
 			    audit_qctrl.aq_minfree);
 			if (mnt_stat->f_bfree < temp)
-				send_trigger(AUDIT_TRIGGER_LOW_SPACE);
+				(void)send_trigger(AUDIT_TRIGGER_LOW_SPACE);
 		}
 
 	/* Check if the current log file is full; if so, call for
@@ -342,7 +342,7 @@
 	    (audit_file_rotate_wait == 0) && 
 	    (vattr.va_size >= audit_fstat.af_filesz)) {
 		audit_file_rotate_wait = 1;
-		send_trigger(AUDIT_TRIGGER_OPEN_NEW);
+		(void)send_trigger(AUDIT_TRIGGER_OPEN_NEW);
 	}
 
 	/*

==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#20 (text+ko) ====

@@ -295,7 +295,7 @@
  * asynchronously.
  */
 void		 audit_trigger_init(void);
-void		 send_trigger(unsigned int trigger);
+int		 send_trigger(unsigned int trigger);
 
 /*
  * General audit related functions.

==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#11 (text+ko) ====

@@ -340,7 +340,7 @@
 		if ((udata.au_trigger < AUDIT_TRIGGER_MIN) ||
 		    (udata.au_trigger > AUDIT_TRIGGER_MAX))
 			return (EINVAL);
-		send_trigger(udata.au_trigger);
+		return (send_trigger(udata.au_trigger));
 		break;
 	}
 	/* Copy data back to userspace for the GET comands */

==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#9 (text+ko) ====

@@ -122,14 +122,14 @@
 	return (EOPNOTSUPP);
 }
 
-void
+int
 send_trigger(unsigned int trigger)
 {
 	struct trigger_info *ti;
 
 	/* If nobody's listening, we ain't talking. */
 	if (!audit_isopen)
-		return;
+		return (ENODEV);
 
 	/*
 	 * XXXAUDIT: Use a condition variable instead of msleep/wakeup?
@@ -140,6 +140,7 @@
 	TAILQ_INSERT_TAIL(&trigger_list, ti, list);
 	wakeup(&trigger_list);
 	mtx_unlock(&audit_trigger_mtx);
+	return (0);
 }
 
 static struct cdevsw audit_cdevsw = {


More information about the trustedbsd-cvs mailing list