From 6b4beae79acedf871769109324ef89c0093a4383 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Mon, 10 Nov 2008 20:56:01 +0000 Subject: [PATCH] ITS#5781 --- CHANGES | 1 + servers/slapd/syncrepl.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index acbc00d086..124b1a9849 100644 --- 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 diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index b53032a3b7..dd39e3cea4 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -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; -- 2.39.5