int freetext = 0;
int do_retry = 1, dont_retry = 0;
LDAPControl **ctrls = NULL;
+ char **references = NULL;
+
/* FIXME: shouldn't this be null? */
const char *save_matched = rs->sr_matched;
}
} else if ( rc == LDAP_RES_SEARCH_REFERENCE ) {
- char **references = NULL;
-
do_retry = 0;
rc = ldap_parse_reference( lc->lc_ld, res,
&references, &rs->sr_ctrls, 1 );
ber_memvfree( (void **)references );
op->o_tmpfree( rs->sr_ref, op->o_tmpmemctx );
rs->sr_ref = NULL;
+ references = NULL;
}
if ( rs->sr_ctrls ) {
}
} else {
- char **references = NULL, *err = NULL;
+ char *err = NULL;
rc = ldap_parse_result( lc->lc_ld, res, &rs->sr_err,
&match.bv_val, &err,
for ( cnt = 0; references[ cnt ]; cnt++ ) {
/* duplicating ...*/
- ber_str2bv( references[ cnt ], 0, 1, &rs->sr_ref[ cnt ] );
+ ber_str2bv( references[ cnt ], 0, 0, &rs->sr_ref[ cnt ] );
}
BER_BVZERO( &rs->sr_ref[ cnt ] );
}
rs->sr_err = LDAP_NO_SUCH_OBJECT;
}
- ber_memvfree( (void **)references );
-
if ( match.bv_val != NULL ) {
match.bv_len = strlen( match.bv_val );
}
}
if ( rs->sr_ref ) {
- ber_bvarray_free_x( rs->sr_ref, op->o_tmpmemctx );
+ op->o_tmpfree( rs->sr_ref, op->o_tmpmemctx );
rs->sr_ref = NULL;
}
+ if ( references ) {
+ ber_memvfree( (void **)references );
+ }
+
if ( attrs ) {
ch_free( attrs );
}
rs->sr_err = LDAP_NO_SUCH_OBJECT;
}
- ber_memvfree( (void **)refs );
-
if ( ctrls != NULL ) {
rs->sr_ctrls = ctrls;
}
ldap_memfree( text );
}
if ( rs->sr_ref ) {
- assert( refs != NULL );
- ber_memvfree( (void **)refs );
op->o_tmpfree( rs->sr_ref, op->o_tmpmemctx );
+ rs->sr_ref = NULL;
+ }
+ if ( refs ) {
+ ber_memvfree( (void **)refs );
}
if ( ctrls ) {
assert( rs->sr_ctrls != NULL );