don't leak text/matched

This commit is contained in:
Pierangelo Masarati 2005-11-03 11:58:06 +00:00
parent 3aca011938
commit 2a24cbb5e8

View File

@ -135,6 +135,12 @@ retry:
(char **)&rs->sr_matched, (char **)&rs->sr_matched,
(char **)&rs->sr_text, (char **)&rs->sr_text,
NULL, NULL, 0 ); NULL, NULL, 0 );
if ( rs->sr_matched && rs->sr_matched[ 0 ] == '\0' ) {
free( (char *)rs->sr_matched );
}
if ( rs->sr_text && rs->sr_text[ 0 ] == '\0' ) {
free( (char *)rs->sr_text );
}
if ( rc == LDAP_SUCCESS ) { if ( rc == LDAP_SUCCESS ) {
if ( rs->sr_err == LDAP_SUCCESS ) { if ( rs->sr_err == LDAP_SUCCESS ) {
struct berval newpw; struct berval newpw;
@ -165,17 +171,19 @@ retry:
} }
} }
send_ldap_result( op, rs ); send_ldap_result( op, rs );
if ( rs->sr_matched ) {
free( (char *)rs->sr_matched );
}
if ( rs->sr_text ) {
free( (char *)rs->sr_text );
}
rs->sr_matched = NULL;
rs->sr_text = NULL;
rc = -1; rc = -1;
} }
/* these have to be freed anyway... */
if ( rs->sr_matched ) {
free( (char *)rs->sr_matched );
}
if ( rs->sr_text ) {
free( (char *)rs->sr_text );
}
rs->sr_matched = NULL;
rs->sr_text = NULL;
if ( lc != NULL ) { if ( lc != NULL ) {
ldap_back_release_conn( op, rs, lc ); ldap_back_release_conn( op, rs, lc );
} }