From: Kurt Zeilenga Date: Sat, 23 Jan 1999 19:53:12 +0000 (+0000) Subject: Import minor dn related changes: X-Git-Tag: OPENLDAP_REL_ENG_1_1_4~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c8e81ad673eafaa1d4650a9788f292aeb9b91703;p=thirdparty%2Fopenldap.git Import minor dn related changes: dn_parent(" ") returns NULL dn2entry logs if dn2id returns id but id2entry doesn't return entry. --- diff --git a/servers/slapd/back-ldbm/dn2id.c b/servers/slapd/back-ldbm/dn2id.c index d540fc4d64..683d30a2e5 100644 --- a/servers/slapd/back-ldbm/dn2id.c +++ b/servers/slapd/back-ldbm/dn2id.c @@ -177,6 +177,14 @@ dn2entry( return( e ); } + if ( id != NOID ) { + Debug(LDAP_DEBUG_ANY, + "dn2entry_%s: no entry for valid id (%lu), dn \"%s\"\n", + rw ? "w" : "r", id, dn); + /* must have been deleted from underneath us */ + /* treat as if NOID was found */ + } + /* stop when we get to the suffix */ if ( be_issuffix( be, dn ) ) { return( NULL ); diff --git a/servers/slapd/dn.c b/servers/slapd/dn.c index 495eca4b70..e18a29f134 100644 --- a/servers/slapd/dn.c +++ b/servers/slapd/dn.c @@ -161,7 +161,19 @@ dn_parent( char *s; int inquote, gotesc; - if ( dn == NULL || *dn == '\0' || be_issuffix( be, dn ) ) { + if( dn == NULL ) { + return NULL; + } + + while(*dn && SPACE(*dn)) { + dn++; + } + + if( *dn == '\0' ) { + return( NULL ); + } + + if ( be_issuffix( be, dn ) ) { return( NULL ); } @@ -179,7 +191,7 @@ dn_parent( if ( *(s + 1) == '\0' ) { return( NULL ); } else { - return( ch_strdup( s + 1 ) ); + return( ch_strdup( &s[1] ) ); } } @@ -191,22 +203,25 @@ dn_parent( inquote = 0; for ( s = dn; *s; s++ ) { if ( *s == '\\' ) { - if ( *(s + 1) ) + if ( *(s + 1) ) { s++; + } continue; } if ( inquote ) { - if ( *s == '"' ) + if ( *s == '"' ) { inquote = 0; + } } else { - if ( *s == '"' ) + if ( *s == '"' ) { inquote = 1; - else if ( DNSEPARATOR( *s ) ) - return( ch_strdup( s + 1 ) ); + } else if ( DNSEPARATOR( *s ) ) { + return( ch_strdup( &s[1] ) ); + } } } - return( ch_strdup("") ); + return( ch_strdup( "" ) ); } /*