diff --git a/CHANGES b/CHANGES index 453a76b1a1d81dc095c7685261627b9b6c9aa676..4f3a4c8d0904d3f3eb60451b5227b4e4a0229cc6 100644 --- a/CHANGES +++ b/CHANGES @@ -23,6 +23,7 @@ OpenLDAP 2.4.14 Engineering Fixed slapd bconfig to return error codes (ITS#5867) Fixed slapd bconfig encoding incorrectly (ITS#5897) Fixed slapd bconfig dangling pointers (ITS#5924) + Fixed slapd behavior with superior objectClasses (ITS#5517) Fixed slapd connection assert (ITS#5835) Fixed slapd epoll handling (ITS#5886) Fixed slapd frontend/backend options handling (ITS#5857) diff --git a/servers/slapd/mods.c b/servers/slapd/mods.c index 328d69b53be4f90beb01fb203755857930bd1814..1ad15f8906997ed3068939a25d4a1237cc16e0c6 100644 --- a/servers/slapd/mods.c +++ b/servers/slapd/mods.c @@ -99,7 +99,13 @@ modify_add_values( * server (whether from LDAP or from the underlying * database). */ - flags = SLAP_MR_EQUALITY | SLAP_MR_VALUE_OF_ASSERTION_SYNTAX; + if ( a->a_desc == slap_schema.si_ad_objectClass ) { + /* Needed by ITS#5517 */ + flags = SLAP_MR_EQUALITY | SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX; + + } else { + flags = SLAP_MR_EQUALITY | SLAP_MR_VALUE_OF_ASSERTION_SYNTAX; + } if ( mod->sm_nvalues ) { flags |= SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH | SLAP_MR_ATTRIBUTE_VALUE_NORMALIZED_MATCH;