]> git.sur5r.net Git - openldap/commitdiff
ITS#3097 fix undefined objectclass assertion
authorKurt Zeilenga <kurt@openldap.org>
Mon, 19 Apr 2004 20:15:14 +0000 (20:15 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Mon, 19 Apr 2004 20:15:14 +0000 (20:15 +0000)
CHANGES
build/version.var
servers/slapd/add.c
servers/slapd/modify.c
servers/slapd/mods.c
servers/slapd/schema_prep.c

diff --git a/CHANGES b/CHANGES
index a9db35742228e8affb0856d5096457b16d063f1d..20080713b6f33ca3815f7b1eab491c4419c41eda 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,11 @@
 OpenLDAP 2.2 Change Log
 
+OpenLDAP 2.2.11 Engineering
+       Fixed slapd undefined objectclass bug (ITS#3097)
+
 OpenLDAP 2.2.10 Release
        Build Environment
-               Fix configure bug
+               Fix configure bug (ITS#3094)
 
 OpenLDAP 2.2.9 Release
        Fixed slapd syncrepl replication bugs (ITS#3055,3056,3069)
index 5835914738fe39ade284e0822fac1e9bf909b71a..f92f946df8172da9b00b71b50c4dc3c500651613 100644 (file)
@@ -15,7 +15,7 @@
 ol_package=OpenLDAP
 ol_major=2
 ol_minor=2
-ol_patch=10
+ol_patch=X
 ol_api_inc=20210
 ol_api_current=7
 ol_api_revision=3
index f7bcc117fd1773e17c031310933b9788cdfe3a37..078bd73075540fe4df27eb98ea5767937cc38c69 100644 (file)
@@ -501,7 +501,7 @@ slap_mods2entry(
                                }
 
                        } else {
-                               int             rc = LDAP_SUCCESS;
+                               int     rc;
                                int match;
 
                                for ( i = 1; mods->sml_values[i].bv_val != NULL; i++ ) {
@@ -519,18 +519,19 @@ slap_mods2entry(
                                                                ? &mods->sml_nvalues[j]
                                                                : &mods->sml_values[j],
                                                        text );
+
                                                if ( rc == LDAP_SUCCESS && match == 0 ) {
                                                        /* value exists already */
                                                        snprintf( textbuf, textlen,
                                                                "%s: value #%d provided more than once",
                                                                mods->sml_desc->ad_cname.bv_val, j );
                                                        return LDAP_TYPE_OR_VALUE_EXISTS;
+
+                                               } else if ( rc != LDAP_SUCCESS ) {
+                                                       return rc;
                                                }
                                        }
                                }
-                               if ( rc != LDAP_SUCCESS ) {
-                                       return rc;
-                               }
                        }
                }
 
index b9e38eb17cbf962c23954affb69b0ac83616a6ca..eed665eda69c70d49a4eae93fefa774fd5c8958a 100644 (file)
@@ -790,7 +790,7 @@ int slap_mods_check(
                                        }
 
                                } else {
-                                       int rc = LDAP_SUCCESS;
+                                       int rc;
                                        int match;
 
                                        for ( i = 1; ml->sml_values[i].bv_val != NULL; i++ ) {
@@ -815,11 +815,12 @@ int slap_mods_check(
                                                                        ml->sml_desc->ad_cname.bv_val, j );
                                                                *text = textbuf;
                                                                return LDAP_TYPE_OR_VALUE_EXISTS;
+
+                                                       } else if ( rc != LDAP_SUCCESS ) {
+                                                               return rc;
                                                        }
                                                }
                                        }
-
-                                       if ( rc != LDAP_SUCCESS ) return rc;
                                }
                        }
 
index 7844d6381e6fc55e86327418a3673f53c7e0c295..8d91c20327e2355c8bafda8f193028c5087e9ff0 100644 (file)
@@ -110,6 +110,9 @@ modify_add_values(
                                                "modify/%s: %s: value #%d already exists",
                                                op, mod->sm_desc->ad_cname.bv_val, i );
                                        return LDAP_TYPE_OR_VALUE_EXISTS;
+
+                               } else if ( rc != LDAP_SUCCESS ) {
+                                       return rc;
                                }
                        }
 
index 79e51ed9c122cd4f94ee3834c31a084e0454f470..dffc3be1fd1ec031cf4fd4c529a1697e2aaf8f5b 100644 (file)
@@ -70,12 +70,12 @@ objectSubClassMatch(
                }
 
                /* desc form, return undefined */
-               return SLAPD_COMPARE_UNDEFINED;
+               return LDAP_INVALID_SYNTAX;
        }
 
        if ( oc == NULL ) {
                /* unrecognized stored value */
-               return SLAPD_COMPARE_UNDEFINED;
+               return LDAP_INVALID_SYNTAX;
        }
 
        if( SLAP_MR_IS_VALUE_OF_ATTRIBUTE_SYNTAX( flags ) ) {