char * audit_objsearch(Rt_map *clmp, const char *name, uint_t flags) { char *nname = (char *)name; int appl = 0; if ((rtld_flags & RT_FL_APPLIC) == 0) appl = rtld_flags |= RT_FL_APPLIC; if (auditors && (auditors->ad_flags & LML_TFLG_AUD_OBJSEARCH)) nname = _audit_objsearch(&(auditors->ad_list), nname, clmp, flags); if (nname && AUDITORS(clmp) && (AUDITORS(clmp)->ad_flags & LML_TFLG_AUD_OBJSEARCH)) nname = _audit_objsearch(&(AUDITORS(clmp)->ad_list), nname, clmp, flags); if (appl) rtld_flags &= ~RT_FL_APPLIC; DBG_CALL(Dbg_libs_audit(LIST(clmp), name, nname)); return (nname); }
char * audit_objsearch(Rt_map *clmp, const char *name, uint_t flags) { char *nname = (char *)name; uint_t rtldflags; if (rt_critical()) return (nname); APPLICATION_ENTER(rtldflags); if (auditors && (auditors->ad_flags & LML_TFLG_AUD_OBJSEARCH)) nname = _audit_objsearch(auditors->ad_list, nname, clmp, flags); if (nname && AUDITORS(clmp) && (AUDITORS(clmp)->ad_flags & LML_TFLG_AUD_OBJSEARCH)) nname = _audit_objsearch(AUDITORS(clmp)->ad_list, nname, clmp, flags); APPLICATION_RETURN(rtldflags); DBG_CALL(Dbg_libs_audit(LIST(clmp), name, nname)); return (nname); }