]> git.sur5r.net Git - openldap/commitdiff
ITS#5781 fix modification of MV attrs with no EQ rule
authorHoward Chu <hyc@openldap.org>
Thu, 30 Oct 2008 18:22:11 +0000 (18:22 +0000)
committerHoward Chu <hyc@openldap.org>
Thu, 30 Oct 2008 18:22:11 +0000 (18:22 +0000)
servers/slapd/syncrepl.c

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;