From a253df3100e1c0e99a223d643a3ab62ed8bda4c2 Mon Sep 17 00:00:00 2001 From: Howard Chu <hyc@openldap.org> Date: Thu, 4 Jan 2007 06:07:20 +0000 Subject: [PATCH] More for ITS#4638, double-free fix from HEAD --- servers/slapd/back-ldap/search.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 ); } -- GitLab