]> git.sur5r.net Git - openldap/commitdiff
ITS#5781
authorQuanah Gibson-Mount <quanah@openldap.org>
Mon, 10 Nov 2008 20:56:01 +0000 (20:56 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Mon, 10 Nov 2008 20:56:01 +0000 (20:56 +0000)
CHANGES
servers/slapd/syncrepl.c

diff --git a/CHANGES b/CHANGES
index acbc00d086bc25829219a04fa80fa733e27f93c5..124b1a9849a2bb17c22e74c1f3fd51c1f029cf14 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -15,6 +15,7 @@ OpenLDAP 2.4.13 Engineering
        Fixed slapd slapd.conf validation to LDIF (ITS#5755)
        Fixed slapd statslog printing of released entry (ITS#5775)
        Added slapd support for certificateListExactMatch (ITS#5700)
+       Fixed slapd syncrepl MOD of attrs with no EQ rule (ITS#5781)
        Fixed slapd-bdb/hdb invalid db crash (ITS#5698)
        Added slapd-bdb/hdb dbpagesize keyword
        Added slapd-bdb/hdb checksum keyword
index b53032a3b7f128a4cb903b4448a03fc0081444c9..dd39e3cea4444ecafab796a51305293dafdb724c 100644 (file)
@@ -2900,8 +2900,13 @@ attr_cmp( Operation *op, Attribute *old, Attribute *new,
                 * Modify would fail if provider has replaced entry with a new,
                 * and the new explicitly includes a superior of a class that was
                 * only included implicitly in the old entry.  Ref ITS#5517.
+                *
+                * Also use replace op if attr has no equality matching rule.
+                * (ITS#5781)
                 */
-               if ( nn && no < o && old->a_desc == slap_schema.si_ad_objectClass )
+               if ( nn && no < o &&
+                       ( old->a_desc == slap_schema.si_ad_objectClass ||
+                        !old->a_desc->ad_type->sat_equality ))
                        no = o;
 
                i = j;