]> git.sur5r.net Git - openldap/commitdiff
ITS#6376
authorQuanah Gibson-Mount <quanah@openldap.org>
Wed, 18 Nov 2009 02:18:15 +0000 (02:18 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Wed, 18 Nov 2009 02:18:15 +0000 (02:18 +0000)
CHANGES
servers/slapd/overlays/syncprov.c

diff --git a/CHANGES b/CHANGES
index e1619a9fa125b990c875f78c470d16157ec9446b..29c9a6259f0b6041417a4064a5b0f94038d548f9 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -28,6 +28,7 @@ OpenLDAP 2.4.20 Engineering
        Fixed slapo-pcache entry dupe (ITS#6310)
        Fixed slapo-syncprov checkpoint conversion (ITS#6370)
        Fixed slapo-syncprov deadlock (ITS#6335)
+       Fixed slapo-syncprov memory leak (ITS#6376)
        Fixed slapo-syncprov out of order changes (ITS#6346)
        Build Environment
                Fixed memrchr define (ITS#6351)
index 49a2cbe8da6e030d5274745a4259b83b69266b51..f67ed9d5506a9a8bbee2185768411492e3affa9b 100644 (file)
@@ -855,7 +855,14 @@ syncprov_sendresp( Operation *op, opcookie *opc, syncops *so,
        }
        /* In case someone else freed it already? */
        if ( rs.sr_ctrls ) {
-               op->o_tmpfree( rs.sr_ctrls[0], op->o_tmpmemctx );
+               int i;
+               for ( i=0; rs.sr_ctrls[i]; i++ ) {
+                       if ( rs.sr_ctrls[i] == ctrls[0] ) {
+                               op->o_tmpfree( ctrls[0]->ldctl_value.bv_val, op->o_tmpmemctx );
+                               ctrls[0]->ldctl_value.bv_val = NULL;
+                               break;
+                       }
+               }
                rs.sr_ctrls = NULL;
        }