From fcdbf9f79e41a1f799517c4f9c1b8fd26cbc5dff Mon Sep 17 00:00:00 2001
From: Quanah Gibson-Mount <quanah@openldap.org>
Date: Wed, 14 Apr 2010 19:56:12 +0000
Subject: [PATCH] ITS#6459

---
 CHANGES                           |  1 +
 servers/slapd/overlays/syncprov.c | 14 +++++++-------
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/CHANGES b/CHANGES
index f6e4120a12..15d4896d1c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,7 @@ OpenLDAP 2.4.22 Engineering
 	Fixed slapo-dynlist REP_ENTRY flag handling (ITS#5340,ITS#6423)
 	Fixed slapo-rwm olcRwmMap handling (ITS#6436)
 	Fixed slapo-rwm REP_ENTRY flag handling (ITS#5340,ITS#6423)
+	Fixed slapo-syncprov memory leak (ITS#6459)
 	Fixed slapo-valsort REP_ENTRY flag handling (ITS#5340,ITS#6423)
 
 OpenLDAP 2.4.21 Release (2009/12/20)
diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c
index d3584a2238..4ee8a23abc 100644
--- a/servers/slapd/overlays/syncprov.c
+++ b/servers/slapd/overlays/syncprov.c
@@ -931,9 +931,9 @@ syncprov_qplay( Operation *op, syncops *so )
 		ldap_pvt_thread_mutex_unlock( &so->s_mutex );
 
 		if ( sr->s_mode == LDAP_SYNC_NEW_COOKIE ) {
-		    SlapReply rs = { REP_INTERMEDIATE };
+			SlapReply rs = { REP_INTERMEDIATE };
 
-		    rc = syncprov_sendinfo( op, &rs, LDAP_TAG_SYNC_NEW_COOKIE,
+			rc = syncprov_sendinfo( op, &rs, LDAP_TAG_SYNC_NEW_COOKIE,
 				&sr->s_csn, 0, NULL, 0 );
 		} else {
 			opc.sdn = sr->s_dn;
@@ -945,11 +945,11 @@ syncprov_qplay( Operation *op, syncops *so )
 
 			rc = syncprov_sendresp( op, &opc, so, sr->s_mode );
 
-			if ( opc.se ) {
-				if ( !dec_mutexint( opc.se->e_private )) {
-					opc.se->e_private = NULL;
-					entry_free ( opc.se );
-				}
+		}
+		if ( sr->s_e ) {
+			if ( !dec_mutexint( sr->s_e->e_private )) {
+				sr->s_e->e_private = NULL;
+				entry_free ( sr->s_e );
 			}
 		}
 
-- 
GitLab