fix escaped semicolon bug in back-bdb

This commit is contained in:
Pierangelo Masarati 2004-05-07 02:09:06 +00:00
parent e5d1b3134c
commit 80449c42d9
2 changed files with 4 additions and 3 deletions

View file

@ -336,9 +336,9 @@ bdb_cache_find_ndn(
/* Advance to next lower RDN */
for (ptr = ei.bei_nrdn.bv_val - 2; ptr > ndn->bv_val
&& !DN_SEPARATOR(*ptr); ptr--) /* empty */;
&& !NDN_SEPARATOR(*ptr); ptr--) /* empty */;
if ( ptr >= ndn->bv_val ) {
if (DN_SEPARATOR(*ptr)) ptr++;
if (NDN_SEPARATOR(*ptr)) ptr++;
ei.bei_nrdn.bv_len = ei.bei_nrdn.bv_val - ptr - 1;
ei.bei_nrdn.bv_val = ptr;
}

View file

@ -133,7 +133,8 @@ LDAP_BEGIN_DECL
|| (c) == '(' || (c) == ')' || !ASCII_PRINTABLE(c) )
#define DN_ESCAPE(c) ((c) == SLAP_ESCAPE_CHAR)
#define DN_SEPARATOR(c) ((c) == ',' || (c) == ';')
#define NDN_SEPARATOR(c) ((c) == ',')
#define DN_SEPARATOR(c) (NDN_SEPARATOR(c) || (c) == ';')
#define RDN_ATTRTYPEANDVALUE_SEPARATOR(c) ((c) == '+') /* RFC 2253 */
#define RDN_SEPARATOR(c) (DN_SEPARATOR(c) || RDN_ATTRTYPEANDVALUE_SEPARATOR(c))
#define RDN_NEEDSESCAPE(c) ((c) == '\\' || (c) == '"')