usr/src/cmd/sgs/rtld/common/audit.c
changeset 12449 a87750d92895
parent 11827 d7ef53deac3f
child 12889 69001e4756ae
equal deleted inserted replaced
12448:f60856ebe541 12449:a87750d92895
    18  *
    18  *
    19  * CDDL HEADER END
    19  * CDDL HEADER END
    20  */
    20  */
    21 
    21 
    22 /*
    22 /*
    23  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
    23  * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
    24  * Use is subject to license terms.
       
    25  *
    24  *
    26  * Audit interfaces.  Auditing can be enabled in two ways:
    25  * Audit interfaces.  Auditing can be enabled in two ways:
    27  *
    26  *
    28  *	o	Using the LD_AUDIT environment variable
    27  *	o	Using the LD_AUDIT environment variable
    29  *
    28  *
    90 	Audit_list	*alp;
    89 	Audit_list	*alp;
    91 	Aliste		idx;
    90 	Aliste		idx;
    92 
    91 
    93 	for (APLIST_TRAVERSE(list, idx, alp)) {
    92 	for (APLIST_TRAVERSE(list, idx, alp)) {
    94 		Audit_client	*fracp, *feacp;
    93 		Audit_client	*fracp, *feacp;
       
    94 		int		ret;
    95 
    95 
    96 		if (alp->al_objfilter == NULL)
    96 		if (alp->al_objfilter == NULL)
    97 			continue;
    97 			continue;
    98 		if ((fracp = _audit_client(AUDINFO(frlmp),
    98 		if ((fracp = _audit_client(AUDINFO(frlmp),
    99 		    alp->al_lmp)) == NULL)
    99 		    alp->al_lmp)) == NULL)
   101 		if ((feacp = _audit_client(AUDINFO(felmp),
   101 		if ((feacp = _audit_client(AUDINFO(felmp),
   102 		    alp->al_lmp)) == NULL)
   102 		    alp->al_lmp)) == NULL)
   103 			continue;
   103 			continue;
   104 
   104 
   105 		leave(LIST(alp->al_lmp), thr_flg_reenter);
   105 		leave(LIST(alp->al_lmp), thr_flg_reenter);
   106 		if ((*alp->al_objfilter)(&(fracp->ac_cookie), ref,
   106 		ret = (*alp->al_objfilter)(&(fracp->ac_cookie), ref,
   107 		    &(feacp->ac_cookie), flags) == 0)
   107 		    &(feacp->ac_cookie), flags);
       
   108 		(void) enter(thr_flg_reenter);
       
   109 		if (ret == 0)
   108 			return (0);
   110 			return (0);
   109 		(void) enter(thr_flg_reenter);
       
   110 	}
   111 	}
   111 	return (1);
   112 	return (1);
   112 }
   113 }
   113 
   114 
   114 int
   115 int