- char *nsuffix = ch_strdup( suffix );
- int rc = 0;
-
- if ( dn_normalize( nsuffix ) != NULL ) {
- if ( select_backend( nsuffix, 0, 0 ) == be ) {
- charray_add( &be->be_replica[nr]->ri_nsuffix, nsuffix );
- } else {
- rc = 1;
- }
- } else {
- rc = 2;
+ struct berval dn, *ndn = NULL;
+ int rc;
+
+ dn.bv_val = (char *) suffix;
+ dn.bv_len = strlen( dn.bv_val );
+
+ rc = dnNormalize( NULL, &dn, &ndn );
+ if( rc != LDAP_SUCCESS ) {
+ return 2;
+ }
+
+ if ( select_backend( ndn, 0, 0 ) != be ) {
+ ber_bvfree( ndn );
+ return 1;