]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
fix filter structure leak (ITS#4794)
authorPierangelo Masarati <ando@openldap.org>
Thu, 28 Dec 2006 10:34:44 +0000 (10:34 +0000)
committerPierangelo Masarati <ando@openldap.org>
Thu, 28 Dec 2006 10:34:44 +0000 (10:34 +0000)
CHANGES
servers/slapd/controls.c
servers/slapd/filter.c

diff --git a/CHANGES b/CHANGES
index 3fcaa01d96337900509529682ac901da7857caef..e854eb3ad067ac8bb8b8dabbdaeb3dcc92470e07 100644 (file)
--- 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
index 56b32d3df2c4da805222133691dfc8d4b60cbeba..e5f9471bea6c269d5fe67bd7947cb62ef3185d5c 100644 (file)
@@ -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;
index 17bc674e234a92d0707c86593c05c33f4826e2f3..c6e3991dbd7cc60ff2cd9dbbd6726e1bc559207d 100644 (file)
@@ -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;
        }