fix previous commit (ITS#4861)

This commit is contained in:
Pierangelo Masarati 2007-03-09 17:24:56 +00:00
parent 3776e2ed83
commit fd1efa13d0
3 changed files with 18 additions and 13 deletions

View File

@ -1711,8 +1711,6 @@ retry:;
rs->sr_err = LDAP_NO_SUCH_OBJECT;
}
ber_memvfree( (void **)refs );
if ( ctrls != NULL ) {
rs->sr_ctrls = ctrls;
}
@ -1771,6 +1769,10 @@ retry:;
rs->sr_ref = NULL;
}
if ( refs ) {
ber_memvfree( (void **)refs );
}
if ( ctrls ) {
assert( rs->sr_ctrls != NULL );
ldap_controls_free( ctrls );

View File

@ -158,6 +158,8 @@ ldap_back_search(
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;
@ -356,8 +358,6 @@ retry:
}
} 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 );
@ -398,6 +398,7 @@ retry:
ber_memvfree( (void **)references );
op->o_tmpfree( rs->sr_ref, op->o_tmpmemctx );
rs->sr_ref = NULL;
references = NULL;
}
if ( rs->sr_ctrls ) {
@ -406,7 +407,7 @@ retry:
}
} else {
char **references = NULL, *err = NULL;
char *err = NULL;
rc = ldap_parse_result( lc->lc_ld, res, &rs->sr_err,
&match.bv_val, &err,
@ -444,7 +445,7 @@ retry:
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 ] );
}
@ -460,8 +461,6 @@ retry:
rs->sr_err = LDAP_NO_SUCH_OBJECT;
}
ber_memvfree( (void **)references );
if ( match.bv_val != NULL ) {
match.bv_len = strlen( match.bv_val );
}
@ -552,10 +551,14 @@ finish:;
}
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 );
}

View File

@ -1056,8 +1056,6 @@ retry:;
rs->sr_err = LDAP_NO_SUCH_OBJECT;
}
ber_memvfree( (void **)refs );
if ( ctrls != NULL ) {
rs->sr_ctrls = ctrls;
}
@ -1201,9 +1199,11 @@ retry:;
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 );