From d8c43ae22f51cdcc8e2b3ebab1a476938183457f Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Sat, 23 Jan 1999 19:55:06 +0000 Subject: [PATCH] Import minor dn related changes: dn_parent(" ") returns NULL dn2entry logs if dn2id returns id but id2entry doesn't return entry. --- servers/slapd/back-ldbm/dn2id.c | 8 ++++++++ servers/slapd/dn.c | 31 +++++++++++++++++++++++-------- 2 files changed, 31 insertions(+), 8 deletions(-) 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 ec57f75ec7..54e53bfc35 100644 --- a/servers/slapd/dn.c +++ b/servers/slapd/dn.c @@ -157,7 +157,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 ); } @@ -175,7 +187,7 @@ dn_parent( if ( *(s + 1) == '\0' ) { return( NULL ); } else { - return( ch_strdup( s + 1 ) ); + return( ch_strdup( &s[1] ) ); } } @@ -187,22 +199,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( "" ) ); } /* -- 2.39.2