From 45ee5cb427f2de85c7efc5cc964eab0a9327adc5 Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: Jan 21 2015 20:57:22 +0000 Subject: Ticket 47738 - use PL_strcasestr instead of strcasestr Bug Description: The use of strcasestr results in unresolved symbols for libacl-plugin.so on build on Solaris Fix Description: Use PR_strcasestr Original patch submitted by: cgrzemba(Thanks!) https://fedorahosted.org/389/ticket/47738 Reviewed by: mreynolds (cherry picked from commit 67177a2108ebf04094be003662f8091ecde5706b) --- diff --git a/ldap/servers/plugins/acl/acllas.c b/ldap/servers/plugins/acl/acllas.c index 4738a40..e3c1778 100644 --- a/ldap/servers/plugins/acl/acllas.c +++ b/ldap/servers/plugins/acl/acllas.c @@ -584,9 +584,9 @@ DS_LASUserDnEval(NSErr_t *errp, char *attr_name, CmpOp_t comparator, } else { /* URL format */ - if ((strcasestr (user, ACL_RULE_MACRO_DN_KEY) != NULL) || - (strcasestr (user, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL) || - (strcasestr (user, ACL_RULE_MACRO_ATTR_KEY) != NULL)) { + if ((PL_strcasestr (user, ACL_RULE_MACRO_DN_KEY) != NULL) || + (PL_strcasestr (user, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL) || + (PL_strcasestr (user, ACL_RULE_MACRO_ATTR_KEY) != NULL)) { matched = aclutil_evaluate_macro( s_user, &lasinfo, ACL_EVAL_USER); @@ -856,9 +856,9 @@ DS_LASGroupDnEval(NSErr_t *errp, char *attr_name, CmpOp_t comparator, "Group not evaluated(%s)\n", groupName); break; } else { - if ((strcasestr (groupName, ACL_RULE_MACRO_DN_KEY) != NULL) || - (strcasestr (groupName, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL) || - (strcasestr (groupName, ACL_RULE_MACRO_ATTR_KEY) != NULL)) { + if ((PL_strcasestr (groupName, ACL_RULE_MACRO_DN_KEY) != NULL) || + (PL_strcasestr (groupName, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL) || + (PL_strcasestr (groupName, ACL_RULE_MACRO_ATTR_KEY) != NULL)) { matched = aclutil_evaluate_macro( groupName, &lasinfo, ACL_EVAL_GROUP); slapi_log_error ( SLAPI_LOG_ACL, plugin_name, @@ -1075,9 +1075,9 @@ DS_LASRoleDnEval(NSErr_t *errp, char *attr_name, CmpOp_t comparator, } else { /* Take care of param strings */ - if ((strcasestr (role, ACL_RULE_MACRO_DN_KEY) != NULL) || - (strcasestr (role, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL) || - (strcasestr (role, ACL_RULE_MACRO_ATTR_KEY) != NULL)) { + if ((PL_strcasestr (role, ACL_RULE_MACRO_DN_KEY) != NULL) || + (PL_strcasestr (role, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL) || + (PL_strcasestr (role, ACL_RULE_MACRO_ATTR_KEY) != NULL)) { matched = aclutil_evaluate_macro( role, &lasinfo, ACL_EVAL_ROLE); @@ -2626,9 +2626,9 @@ DS_LASGroupDnAttrEval(NSErr_t *errp, char *attr_name, CmpOp_t comparator, /* In this case "grppupdnattr="ldap:///base??attr" */ - if ((strcasestr (attrName, ACL_RULE_MACRO_DN_KEY) != NULL) || - (strcasestr (attrName, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL) || - (strcasestr (attrName, ACL_RULE_MACRO_ATTR_KEY) != NULL)) { + if ((PL_strcasestr (attrName, ACL_RULE_MACRO_DN_KEY) != NULL) || + (PL_strcasestr (attrName, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL) || + (PL_strcasestr (attrName, ACL_RULE_MACRO_ATTR_KEY) != NULL)) { matched = aclutil_evaluate_macro( attrName, &lasinfo, ACL_EVAL_GROUPDNATTR); @@ -4199,12 +4199,12 @@ acllas_replace_dn_macro( char *rule, char *matched_val, lasInfo *lasinfo) { int has_macro_levels = 0; /* Determine what the rule's got once */ - if ( strcasestr(rule, ACL_RULE_MACRO_DN_KEY) != NULL) { + if ( PL_strcasestr(rule, ACL_RULE_MACRO_DN_KEY) != NULL) { /* ($dn) exists */ has_macro_dn = 1; } - if ( strcasestr(rule, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL) { + if ( PL_strcasestr(rule, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL) { /* [$dn] exists */ has_macro_levels = 1; } @@ -4308,7 +4308,7 @@ acllas_replace_attr_macro( char *rule, lasInfo *lasinfo) int l; Slapi_Attr *attr = NULL; - str = strcasestr(rule, ACL_RULE_MACRO_ATTR_KEY); + str = PL_strcasestr(rule, ACL_RULE_MACRO_ATTR_KEY); if ( str == NULL ) { charray_add(&a, slapi_ch_strdup(rule)); @@ -4317,7 +4317,7 @@ acllas_replace_attr_macro( char *rule, lasInfo *lasinfo) } else { working_rule = slapi_ch_strdup(rule); - str = strcasestr(working_rule, ACL_RULE_MACRO_ATTR_KEY); + str = PL_strcasestr(working_rule, ACL_RULE_MACRO_ATTR_KEY); charray_add(&working_list, working_rule ); while( str != NULL) { @@ -4415,7 +4415,7 @@ acllas_replace_attr_macro( char *rule, lasInfo *lasinfo) slapi_ch_free_string(¯o_str); slapi_ch_free_string(¯o_attr_name); - str = strcasestr(working_rule, ACL_RULE_MACRO_ATTR_KEY); + str = PL_strcasestr(working_rule, ACL_RULE_MACRO_ATTR_KEY); }/* while */ diff --git a/ldap/servers/plugins/acl/aclparse.c b/ldap/servers/plugins/acl/aclparse.c index fd262e8..24b186e 100644 --- a/ldap/servers/plugins/acl/aclparse.c +++ b/ldap/servers/plugins/acl/aclparse.c @@ -318,8 +318,8 @@ __aclp__parse_aci(char *str, aci_t *aci_item, char **errbuf) * have a target and it must have a macro. */ - if ((strcasestr(str, ACL_RULE_MACRO_DN_KEY) != NULL) || - (strcasestr(str, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL)) { + if ((PL_strcasestr(str, ACL_RULE_MACRO_DN_KEY) != NULL) || + (PL_strcasestr(str, ACL_RULE_MACRO_DN_LEVELS_KEY) != NULL)) { /* Must have a targetmacro */ if ( !(aci_item->aci_type & ACI_TARGET_MACRO_DN)) { diff --git a/ldap/servers/plugins/acl/aclutil.c b/ldap/servers/plugins/acl/aclutil.c index 0720dae..619f857 100644 --- a/ldap/servers/plugins/acl/aclutil.c +++ b/ldap/servers/plugins/acl/aclutil.c @@ -1250,7 +1250,7 @@ acl_replace_str(char * s, char *substr, char* replace_with_str) { char *working_s, *suffix, *prefix, *patched; int replace_with_len, substr_len, prefix_len, suffix_len; - if (strcasestr(s, substr) == NULL) { + if (PL_strcasestr(s, substr) == NULL) { return(slapi_ch_strdup(s)); } else { @@ -1260,7 +1260,7 @@ acl_replace_str(char * s, char *substr, char* replace_with_str) { working_s = slapi_ch_strdup(s); prefix = working_s; - str = strcasestr(prefix, substr); + str = PL_strcasestr(prefix, substr); while (str != NULL) { @@ -1287,7 +1287,7 @@ acl_replace_str(char * s, char *substr, char* replace_with_str) { working_s = patched; prefix = working_s; - str = strcasestr(prefix, substr); + str = PL_strcasestr(prefix, substr); }