From 9dd2d1d17bd193e61232c33aebc973cbb4b42f0c Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Thu, 10 Jul 2008 02:21:18 +0000 Subject: [PATCH] ITS#5597 --- CHANGES | 3 ++- servers/slapd/syncrepl.c | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index e4ba6f9f63..63c5ff1329 100644 --- a/CHANGES +++ b/CHANGES @@ -13,7 +13,8 @@ OpenLDAP 2.4.11 Engineering Fixed slapd equality rules for olcRootDN/olcSchemaDN (ITS#5540) Fixed slapd sets memory leak (ITS#5557) Fixed slapd sortvals binary search (ITS#5578) - Fixed slapd/slapo-syncprov syncrepl contextCSN updates as internal ops (ITS#5596) + Fixed slapd syncrepl updates with multiple masters (ITS#5597) + Fixed slapd syncrepl/slapo-syncprov contextCSN updates as internal ops (ITS#5596) Fixed slapd-meta link to slapd-ldap (ITS#5355) Fixed slapd-sock, back-shell buffer count (ITS#5558) Fixed slapo-dynlist dg attrs lookup (ITS#5583) diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index fd8847727c..a3164aeb36 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -689,8 +689,8 @@ compare_csns( struct sync_cookie *sc1, struct sync_cookie *sc2, int *which ) return -1; } - for (i=0; inumcsns; i++) { - for (j=0; jnumcsns; j++) { + for (j=0; jnumcsns; j++) { + for (i=0; inumcsns; i++) { if ( sc1->sids[i] != sc2->sids[j] ) continue; value_match( &match, slap_schema.si_ad_entryCSN, @@ -703,6 +703,11 @@ compare_csns( struct sync_cookie *sc1, struct sync_cookie *sc2, int *which ) } break; } + if ( i == sc1->numcsns ) { + /* sc2 has a sid sc1 lacks */ + *which = j; + return -1; + } } return match; } -- 2.39.5