From 1af2849f7c0043f33719b1a093b1cef65a464cd4 Mon Sep 17 00:00:00 2001
From: Howard Chu <hyc@openldap.org>
Date: Sat, 19 Apr 2008 23:27:49 +0000
Subject: [PATCH] ITS#5470 also ignore presentlist if number of CSNs don't
 match

---
 servers/slapd/syncrepl.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c
index 99e506908a..df7c456b01 100644
--- a/servers/slapd/syncrepl.c
+++ b/servers/slapd/syncrepl.c
@@ -946,7 +946,8 @@ do_syncrep2(
 				 *	2) on err policy : stop service, stop sync, retry
 				 */
 				if ( refreshDeletes == 0 && match < 0 &&
-					err == LDAP_SUCCESS )
+					err == LDAP_SUCCESS &&
+					syncCookie_req.numcsns == syncCookie.numcsns )
 				{
 					syncrepl_del_nonpresent( op, si, NULL,
 						&syncCookie.ctxcsn[m] );
@@ -1095,7 +1096,8 @@ do_syncrep2(
 				}
 
 				if ( match < 0 ) {
-					if ( si->si_refreshPresent == 1 ) {
+					if ( si->si_refreshPresent == 1 &&
+						syncCookie_req.numcsns == syncCookie.numcsns ) {
 						syncrepl_del_nonpresent( op, si, NULL,
 							&syncCookie.ctxcsn[m] );
 					}
-- 
GitLab