From a6967c925532e2ac8e9a7882d7e49717db14a1fc Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Thu, 28 Dec 2006 10:34:44 +0000 Subject: [PATCH] fix filter structure leak (ITS#4794) --- CHANGES | 1 + servers/slapd/controls.c | 2 ++ servers/slapd/filter.c | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 3fcaa01d96..e854eb3ad0 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,7 @@ OpenLDAP 2.3 Change Log OpenLDAP 2.3.32 Engineering Fixed slapd ACL set memleak (ITS#4780) Fixed slapd syncrepl shutdown hang (ITS#4790) + Fixed slapd values return filter control leak (ITS#4794) Fixed slapd-sql Debug typo (ITS#4784) OpenLDAP 2.3.31 Release diff --git a/servers/slapd/controls.c b/servers/slapd/controls.c index 56b32d3df2..e5f9471bea 100644 --- a/servers/slapd/controls.c +++ b/servers/slapd/controls.c @@ -1254,6 +1254,8 @@ static int parseValuesReturnFilter ( rs->sr_err = get_vrFilter( op, ber, (ValuesReturnFilter **)&(op->o_vrFilter), &rs->sr_text); + (void) ber_free( ber, 1 ); + if( rs->sr_err != LDAP_SUCCESS ) { if( rs->sr_err == SLAPD_DISCONNECT ) { rs->sr_err = LDAP_PROTOCOL_ERROR; diff --git a/servers/slapd/filter.c b/servers/slapd/filter.c index 17bc674e23..c6e3991dbd 100644 --- a/servers/slapd/filter.c +++ b/servers/slapd/filter.c @@ -978,7 +978,7 @@ get_simple_vrFilter( } if ( err == LDAP_SUCCESS ) { - *filt = ch_malloc( sizeof vrf ); + *filt = op->o_tmpalloc( sizeof vrf, op->o_tmpmemctx ); **filt = vrf; } -- 2.47.2