]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/dn.c
fix substring_comp_candidates logic if intersection of candidates
[openldap] / servers / slapd / dn.c
index 6c06f23ca97949983e338b2147a24e7b43e52f58..4f28d164b8989490de6b653ce3aa95a3328986c9 100644 (file)
@@ -169,7 +169,7 @@ dn_parent(
                return( NULL );
        }
 
-       if ( be_issuffix( be, dn ) ) {
+       if ( be != NULL && be_issuffix( be, dn ) ) {
                return( NULL );
        }
 
@@ -239,7 +239,7 @@ char * dn_rdn(
                return( NULL );
        }
 
-       if ( be_issuffix( be, dn ) ) {
+       if ( be != NULL && be_issuffix( be, dn ) ) {
                return( NULL );
        }
 
@@ -454,13 +454,20 @@ rdn_attr_value( char * rdn )
 void
 build_new_dn( char ** new_dn, char *e_dn, char * p_dn, char * newrdn )
 {
+
+    if ( p_dn == NULL ) {
+
+       *new_dn = ch_strdup( newrdn );
+       return;
+
+    }
     
     *new_dn = (char *) ch_malloc( strlen( p_dn ) + strlen( newrdn ) + 3 );
 
     if ( dn_type( e_dn ) == DN_X500 ) {
 
        strcpy( *new_dn, newrdn );
-       strcat( *new_dn, ", " );
+       strcat( *new_dn, "," );
        strcat( *new_dn, p_dn );
 
     } else {