xnu-4903.241.1/bsd/security/audit/audit_pipe.c
/*
 * audit_pipe_submit_user(): the same as audit_pipe_submit(), except that
 * since we don't currently have selection information available, it is
 * delivered to the pipe unconditionally.
 *
 * XXXRW: This is a bug.  The BSM check routine for submitting a user record
 * should parse that information and return it.
 */
the same as audit_pipe_submit(), except that
since we don't currently have selection information available, it is
delivered to the pipe unconditionally.

This is a bug.  The BSM check routine for submitting a user record
should parse that information and return it.
the same as audit_pipe_submit () except that since we don ' t currently have selection information available it is delivered to the pipe unconditionally . This is a bug . The BSM check routine for submitting a user record should parse that information and return it .
void
audit_pipe_submit_user(void *record, u_int record_len)
{
	struct audit_pipe *ap;
	if (TAILQ_FIRST(&audit_pipe_list) == NULL)
		return;
	AUDIT_PIPE_LIST_RLOCK();
	TAILQ_FOREACH(ap, &audit_pipe_list, ap_list) {
		AUDIT_PIPE_LOCK(ap);
		audit_pipe_append(ap, record, record_len);
		AUDIT_PIPE_UNLOCK(ap);
	}
	AUDIT_PIPE_LIST_RUNLOCK();
	audit_pipe_records++;
}
void audit_pipe_submit_user ( void * record , u_int record_len ) { struct audit_pipe * ap ; if ( TAILQ_FIRST ( & audit_pipe_list ) == NULL ) return ; AUDIT_PIPE_LIST_RLOCK ( ) ; TAILQ_FOREACH ( ap , & audit_pipe_list , ap_list ) { AUDIT_PIPE_LOCK ( ap ) ; audit_pipe_append ( ap , record , record_len ) ; AUDIT_PIPE_UNLOCK ( ap ) ; } AUDIT_PIPE_LIST_RUNLOCK ( ) ; audit_pipe_records ++ ; }
audit_pipe_submit_user(): the same as audit_pipe_submit(), except that
 since we don't currently have selection information available, it is
 delivered to the pipe unconditionally.
audit_pipe_submit_user () : the same as audit_pipe_submit () except that since we don ' t currently have selection information available it is delivered to the pipe unconditionally .
/*
	 * Lockless read to avoid lock overhead if pipes are not in use.
	 */ /* Unlocked increment. */