Commit b34cf024 authored by Pierangelo Masarati's avatar Pierangelo Masarati
Browse files

more on fixing escaped semicolon in normalized DN

parent 80449c42
......@@ -551,7 +551,7 @@ acl_get(
continue;
if ( patlen > 0 ) {
if ( !DN_SEPARATOR( e->e_ndn[dnlen - patlen - 1] ) )
if ( !NDN_SEPARATOR( e->e_ndn[dnlen - patlen - 1] ) )
continue;
sep = 1;
}
......@@ -561,13 +561,13 @@ acl_get(
continue;
} else if ( a->acl_dn_style == ACL_STYLE_SUBTREE ) {
if ( dnlen > patlen && !DN_SEPARATOR( e->e_ndn[dnlen - patlen - 1] ) )
if ( dnlen > patlen && !NDN_SEPARATOR( e->e_ndn[dnlen - patlen - 1] ) )
continue;
} else if ( a->acl_dn_style == ACL_STYLE_CHILDREN ) {
if ( dnlen <= patlen )
continue;
if ( !DN_SEPARATOR( e->e_ndn[dnlen - patlen - 1] ) )
if ( !NDN_SEPARATOR( e->e_ndn[dnlen - patlen - 1] ) )
continue;
}
......@@ -652,7 +652,7 @@ acl_get(
} else if ( a->acl_dn_style == ACL_STYLE_ONE ) {
int rdnlen = -1;
if ( !DN_SEPARATOR( val->bv_val[vdnlen - patlen - 1] ) )
if ( !NDN_SEPARATOR( val->bv_val[vdnlen - patlen - 1] ) )
continue;
rdnlen = dn_rdnlen( NULL, val );
......@@ -660,14 +660,14 @@ acl_get(
continue;
} else if ( a->acl_dn_style == ACL_STYLE_SUBTREE ) {
if ( vdnlen > patlen && !DN_SEPARATOR( val->bv_val[vdnlen - patlen - 1] ) )
if ( vdnlen > patlen && !NDN_SEPARATOR( val->bv_val[vdnlen - patlen - 1] ) )
continue;
} else if ( a->acl_dn_style == ACL_STYLE_CHILDREN ) {
if ( vdnlen <= patlen )
continue;
if ( !DN_SEPARATOR( val->bv_val[vdnlen - patlen - 1] ) )
if ( !NDN_SEPARATOR( val->bv_val[vdnlen - patlen - 1] ) )
continue;
}
......@@ -880,7 +880,7 @@ acl_mask(
goto dn_match_cleanup;
}
if ( !DN_SEPARATOR( op->o_ndn.bv_val[odnlen - patlen - 1] ) ) {
if ( !NDN_SEPARATOR( op->o_ndn.bv_val[odnlen - patlen - 1] ) ) {
goto dn_match_cleanup;
}
......@@ -890,7 +890,7 @@ acl_mask(
}
} else if ( b->a_dn_style == ACL_STYLE_SUBTREE ) {
if ( odnlen > patlen && !DN_SEPARATOR( op->o_ndn.bv_val[odnlen - patlen - 1] ) ) {
if ( odnlen > patlen && !NDN_SEPARATOR( op->o_ndn.bv_val[odnlen - patlen - 1] ) ) {
goto dn_match_cleanup;
}
......@@ -899,7 +899,7 @@ acl_mask(
goto dn_match_cleanup;
}
if ( !DN_SEPARATOR( op->o_ndn.bv_val[odnlen - patlen - 1] ) ) {
if ( !NDN_SEPARATOR( op->o_ndn.bv_val[odnlen - patlen - 1] ) ) {
goto dn_match_cleanup;
}
}
......
......@@ -196,7 +196,7 @@ check_scope( BackendDB *be, AccessControl *a )
int rdnlen = -1, sep = 0;
if ( patlen > 0 ) {
if ( !DN_SEPARATOR( dn.bv_val[ dn.bv_len - patlen - 1 ] ) )
if ( !NDN_SEPARATOR( dn.bv_val[ dn.bv_len - patlen - 1 ] ) )
return ACL_SCOPE_ERR;
sep = 1;
}
......@@ -227,7 +227,7 @@ check_scope( BackendDB *be, AccessControl *a )
break;
}
if ( dn.bv_len < patlen && !DN_SEPARATOR( a->acl_dn_pat.bv_val[ patlen -dn.bv_len - 1 ] ) ) {
if ( dn.bv_len < patlen && !NDN_SEPARATOR( a->acl_dn_pat.bv_val[ patlen -dn.bv_len - 1 ] ) ) {
return ACL_SCOPE_ERR;
}
......
......@@ -134,7 +134,10 @@ ldap_back_dn_massage(
if ( diff < 0 ) {
/* alias is longer than dn */
continue;
} else if ( diff > 0 && ( !DN_SEPARATOR(dn->bv_val[diff-1]))) {
} else if ( diff > 0 && ( !NDN_SEPARATOR(dn->bv_val[diff-1]))) {
/* FIXME: should use DN_SEPARATOR() instead of
* NDN_SEPARATOR(), but the latter may fail if
* an escaped ';' is present */
/* boundary is not at a DN separator */
continue;
/* At a DN Separator */
......
......@@ -749,7 +749,7 @@ is_one_level_rdn(
)
{
for ( ; from--; ) {
if ( DN_SEPARATOR( rdn[ from ] ) ) {
if ( NDN_SEPARATOR( rdn[ from ] ) ) {
return 0;
}
}
......
......@@ -670,7 +670,7 @@ select_backend(
* need not look at escaping
*/
if ( len && len < dnlen &&
!DN_SEPARATOR( dn->bv_val[(dnlen-len)-1] ))
!NDN_SEPARATOR( dn->bv_val[(dnlen-len)-1] ))
{
continue;
}
......
......@@ -690,7 +690,7 @@ dnParent(
return;
}
assert( DN_SEPARATOR( p[ 0 ] ) );
assert( NDN_SEPARATOR( p[ 0 ] ) );
p++;
assert( ATTR_LEADCHAR( p[ 0 ] ) );
......@@ -882,7 +882,7 @@ dnIsSuffix(
}
/* no rdn separator or escaped rdn separator */
if ( d > 1 && !DN_SEPARATOR( dn->bv_val[ d - 1 ] ) ) {
if ( d > 1 && !NDN_SEPARATOR( dn->bv_val[ d - 1 ] ) ) {
return 0;
}
......
......@@ -163,7 +163,7 @@ limits_get(
}
} else {
/* check for unescaped rdn separator */
if ( !DN_SEPARATOR( ndn->bv_val[d-1] ) ) {
if ( !NDN_SEPARATOR( ndn->bv_val[d-1] ) ) {
break;
}
}
......
......@@ -138,7 +138,10 @@ rwm_dn_massage(
if ( diff < 0 ) {
/* alias is longer than dn */
continue;
} else if ( diff > 0 && ( !DN_SEPARATOR(dn->bv_val[diff-1]))) {
} else if ( diff > 0 && ( !NDN_SEPARATOR(dn->bv_val[diff-1]))) {
/* FIXME: should use DN_SEPARATOR() instead of
* NDN_SEPARATOR(), but the latter may fail if
* an escaped ';' is present */
/* boundary is not at a DN separator */
continue;
/* At a DN Separator */
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment