From: Howard Chu Date: Thu, 4 Jan 2007 06:07:20 +0000 (+0000) Subject: More for ITS#4638, double-free fix from HEAD X-Git-Tag: OPENLDAP_REL_ENG_2_3_32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a253df3100e1c0e99a223d643a3ab62ed8bda4c2;p=thirdparty%2Fopenldap.git More for ITS#4638, double-free fix from HEAD --- diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c index abd1019db5..a7645bd926 100644 --- a/servers/slapd/back-ldap/search.c +++ b/servers/slapd/back-ldap/search.c @@ -150,6 +150,7 @@ ldap_back_search( msgid; struct berval match = BER_BVNULL, filter = BER_BVNULL; + int free_filter = 0; int i; char **attrs = NULL; int freetext = 0; @@ -237,6 +238,7 @@ retry: case LDAP_FILTER_ERROR: if ( ldap_back_munge_filter( op, &filter ) ) { + free_filter = 1; goto retry; } @@ -495,7 +497,7 @@ finish:; rs->sr_matched = save_matched; } - if ( !BER_BVISNULL( &filter ) && filter.bv_val != op->ors_filterstr.bv_val ) { + if ( free_filter ) { op->o_tmpfree( filter.bv_val, op->o_tmpmemctx ); }