]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/acl.c
fix previous commit (ITS#5819)
[openldap] / servers / slapd / acl.c
index 6243a3edf68210d9333a2be111c227fc5707581d..d04f1df00575fda77e42213424a342be2e5a031f 100644 (file)
@@ -243,10 +243,9 @@ slap_access_allowed(
 
                /* DN matches */
                for ( i = 0; i < dnmaxcount && dn_data[i].rm_eo > 0; i++ ) {
-                       char *debugmsg = "=> match[dn%d]: %d %d ";
                        char *data = e->e_ndn;
 
-                       Debug( LDAP_DEBUG_ACL, debugmsg, i,
+                       Debug( LDAP_DEBUG_ACL, "=> match[dn%d]: %d %d ", i,
                                (int)dn_data[i].rm_so, 
                                (int)dn_data[i].rm_eo );
                        if ( dn_data[i].rm_so <= dn_data[0].rm_eo ) {
@@ -262,10 +261,9 @@ slap_access_allowed(
 
                /* val matches */
                for ( i = 0; i < valmaxcount && val_data[i].rm_eo > 0; i++ ) {
-                       char *debugmsg = "=> match[val%d]: %d %d ";
                        char *data = val->bv_val;
 
-                       Debug( LDAP_DEBUG_ACL, debugmsg, i,
+                       Debug( LDAP_DEBUG_ACL, "=> match[val%d]: %d %d ", i,
                                (int)val_data[i].rm_so, 
                                (int)val_data[i].rm_eo );
                        if ( val_data[i].rm_so <= val_data[0].rm_eo ) {
@@ -518,7 +516,7 @@ slap_acl_get(
        AccessControlState *state )
 {
        const char *attr;
-       int dnlen, patlen;
+       ber_len_t dnlen;
        AccessControl *prev;
 
        assert( e != NULL );
@@ -566,6 +564,8 @@ slap_acl_get(
                                        continue;
 
                        } else {
+                               ber_len_t patlen;
+
                                Debug( LDAP_DEBUG_ACL, "=> dn: [%d] %s\n", 
                                        *count, a->acl_dn_pat.bv_val, 0 );
                                patlen = a->acl_dn_pat.bv_len;
@@ -579,7 +579,7 @@ slap_acl_get(
 
                                } else if ( a->acl_dn_style == ACL_STYLE_ONE ) {
                                        ber_len_t       rdnlen = 0;
-                                       int             sep = 0;
+                                       ber_len_t       sep = 0;
 
                                        if ( dnlen <= patlen )
                                                continue;
@@ -591,7 +591,7 @@ slap_acl_get(
                                        }
 
                                        rdnlen = dn_rdnlen( NULL, &e->e_nname );
-                                       if ( rdnlen != dnlen - patlen - sep )
+                                       if ( rdnlen + patlen + sep != dnlen )
                                                continue;
 
                                } else if ( a->acl_dn_style == ACL_STYLE_SUBTREE ) {
@@ -634,12 +634,10 @@ slap_acl_get(
                        }
 
                        if ( a->acl_attrval_style == ACL_STYLE_REGEX ) {
-                               int rc;
-
                                Debug( LDAP_DEBUG_ACL,
                                        "acl_get: valpat %s\n",
                                        a->acl_attrval.bv_val, 0, 0 );
-                               if ( rc = regexec ( &a->acl_attrval_re, 
+                               if ( regexec ( &a->acl_attrval_re, 
                                                    val->bv_val, 
                                                    matches->val_count, 
                                                    matches->val_data, 0 ) )
@@ -662,7 +660,7 @@ slap_acl_get(
                                                continue;
                                        
                                } else {
-                                       int             patlen, vdnlen;
+                                       ber_len_t       patlen, vdnlen;
        
                                        patlen = a->acl_attrval.bv_len;
                                        vdnlen = val->bv_len;
@@ -681,7 +679,7 @@ slap_acl_get(
                                                        continue;
        
                                                rdnlen = dn_rdnlen( NULL, val );
-                                               if ( rdnlen != vdnlen - patlen - 1 )
+                                               if ( rdnlen + patlen + 1 != vdnlen )
                                                        continue;
        
                                        } else if ( a->acl_attrval_style == ACL_STYLE_SUBTREE ) {
@@ -739,7 +737,6 @@ static int
 acl_mask_dn(
        Operation               *op,
        Entry                   *e,
-       AttributeDescription    *desc,
        struct berval           *val,
        AccessControl           *a,
        AclRegexMatches         *matches,
@@ -804,7 +801,6 @@ acl_mask_dn(
                        AclRegexMatches tmp_matches,
                                        *tmp_matchesp = &tmp_matches;
                        int             rc = 0;
-                       int             dnoffset;
                        regmatch_t      *tmp_data;
 
                        MATCHES_MEMSET( &tmp_matches );
@@ -1025,9 +1021,6 @@ acl_mask_dnattr(
        Entry                   *e,
        struct berval           *val,
        AccessControl           *a,
-       Access                  *b,
-       int                     i,
-       AclRegexMatches         *matches,
        int                     count,
        AccessControlState      *state,
        slap_dn_access          *bdn,
@@ -1140,7 +1133,9 @@ slap_acl_mask(
        char            accessmaskbuf[ACCESSMASK_MAXLEN];
 #endif /* DEBUG */
        const char      *attr;
+#ifdef SLAP_DYNACL
        slap_mask_t     a2pmask = ACL_ACCESS2PRIV( access );
+#endif /* SLAP_DYNACL */
 
        assert( a != NULL );
        assert( mask != NULL );
@@ -1185,7 +1180,7 @@ slap_acl_mask(
                         * is maintained in a_dn_pat.
                         */
 
-                       if ( acl_mask_dn( op, e, desc, val, a, matches,
+                       if ( acl_mask_dn( op, e, val, a, matches,
                                &b->a_dn, &op->o_ndn ) )
                        {
                                continue;
@@ -1216,7 +1211,7 @@ slap_acl_mask(
                                ndn = op->o_ndn;
                        }
 
-                       if ( acl_mask_dn( op, e, desc, val, a, matches,
+                       if ( acl_mask_dn( op, e, val, a, matches,
                                &b->a_realdn, &ndn ) )
                        {
                                continue;
@@ -1507,8 +1502,8 @@ slap_acl_mask(
                }
 
                if ( b->a_dn_at != NULL ) {
-                       if ( acl_mask_dnattr( op, e, val, a, b, i,
-                                       matches, count, state,
+                       if ( acl_mask_dnattr( op, e, val, a,
+                                       count, state,
                                        &b->a_dn, &op->o_ndn ) )
                        {
                                continue;
@@ -1525,8 +1520,8 @@ slap_acl_mask(
                                ndn = op->o_ndn;
                        }
 
-                       if ( acl_mask_dnattr( op, e, val, a, b, i,
-                                       matches, count, state,
+                       if ( acl_mask_dnattr( op, e, val, a,
+                                       count, state,
                                        &b->a_realdn, &ndn ) )
                        {
                                continue;