]> git.sur5r.net Git - openldap/commitdiff
ITS#5517 again
authorQuanah Gibson-Mount <quanah@openldap.org>
Sun, 22 Feb 2009 23:45:31 +0000 (23:45 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Sun, 22 Feb 2009 23:45:31 +0000 (23:45 +0000)
CHANGES
servers/slapd/mods.c

diff --git a/CHANGES b/CHANGES
index 15064e016b97eabab859060e571c73d6de4d439e..7622e86c96d4b2990a724e1889e50fc118c2921e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,7 @@ OpenLDAP 2.4.15 Release (2009/02/19)
        Fixed libldap alias dereferencing in C API again (ITS#5916)
        Fixed libldap GnuTLS compilation (ITS#5955)
        Fixed slapd bconfig conversion again (ITS#5346)
+       Fixed slapd behavior with superior objectClasses again (ITS#5517)
        Fixed slapd corrupt contextCSN (ITS#5947)
        Fixed slapd syncrepl order to match on add/delete (ITS#5954)
        Fixed slapd adding rdn with other values (ITS#5965)
index 1ad15f8906997ed3068939a25d4a1237cc16e0c6..c8d8b9c9e29a27b0116a7768466c84d75b167b58 100644 (file)
@@ -263,13 +263,18 @@ modify_delete_vindex(
                goto return_result;
        }
 
+       if ( a->a_desc == slap_schema.si_ad_objectClass ) {
+               /* Needed by ITS#5517,ITS#5963 */
+               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_EQUALITY | SLAP_MR_VALUE_OF_ASSERTION_SYNTAX
-                       | SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH
+               flags |= SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH
                        | SLAP_MR_ATTRIBUTE_VALUE_NORMALIZED_MATCH;
                cvals = mod->sm_nvalues;
        } else {
-               flags = SLAP_MR_EQUALITY | SLAP_MR_VALUE_OF_ASSERTION_SYNTAX;
                cvals = mod->sm_values;
        }