X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fdn.c;h=a20d5a2cb5c845aff9bf52cb8487299ccc42ed61;hb=ae63be3894c799771d0ccabec1e376c7478cd263;hp=39dc192bbd90b04f7b31119066e8d59bd5f4398e;hpb=60802201e3a39b0a46bfa7156c608026f7d361ba;p=openldap diff --git a/servers/slapd/dn.c b/servers/slapd/dn.c index 39dc192bbd..a20d5a2cb5 100644 --- a/servers/slapd/dn.c +++ b/servers/slapd/dn.c @@ -137,18 +137,21 @@ dn_validate( char *dn ) *d++ = *s; } break; + case B4SEPARATOR: if ( RDN_SEPARATOR( *s ) ) { state = B4TYPE; *d++ = *s; } break; + default: dn = NULL; Debug( LDAP_DEBUG_ANY, "dn_validate - unknown state %d\n", state, 0, 0 ); break; } + if ( *s == '\\' ) { gotesc = 1; } else { @@ -263,7 +266,7 @@ char * dn_rdn( } while(*dn_in && ASCII_SPACE(*dn_in)) { - dn++; + dn_in++; } if( *dn_in == '\0' ) { @@ -388,9 +391,7 @@ get_next_substring( const char * s, char d ) /* Skip leading spaces */ while ( *s && ASCII_SPACE(*s) ) { - s++; - } /* Copy word */ @@ -423,9 +424,7 @@ get_next_substring( const char * s, char d ) char * rdn_attr_type( const char * s ) { - return get_next_substring( s, '=' ); - } @@ -445,9 +444,7 @@ rdn_attr_value( const char * rdn ) const char *str; if ( (str = strchr( rdn, '=' )) != NULL ) { - return get_next_substring(++str, '\0'); - } return NULL; @@ -478,10 +475,8 @@ build_new_dn( char ** new_dn, { if ( p_dn == NULL ) { - *new_dn = ch_strdup( newrdn ); return; - } *new_dn = (char *) ch_malloc( strlen( p_dn ) + strlen( newrdn ) + 3 );