]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/at.c
remove dbenv->lock_put() call from transaction-protected operations
[openldap] / servers / slapd / at.c
index b12d25eb28a17bb7c5093eb8a89da186aa14aba8..911c46f8702d5a993233951d8e443d1abbd2d1c8 100644 (file)
@@ -235,7 +235,7 @@ at_insert(
                                 (AVL_DUP) avl_dup_error ) ) {
                        *err = sat->sat_oid;
                        ldap_memfree(air);
-                       return SLAP_SCHERR_DUP_ATTR;
+                       return SLAP_SCHERR_ATTR_DUP;
                }
                /* FIX: temporal consistency check */
                at_bvfind(&air->air_name);
@@ -253,7 +253,7 @@ at_insert(
                                         (AVL_DUP) avl_dup_error ) ) {
                                *err = *names;
                                ldap_memfree(air);
-                               return SLAP_SCHERR_DUP_ATTR;
+                               return SLAP_SCHERR_ATTR_DUP;
                        }
                        /* FIX: temporal consistency check */
                        at_bvfind(&air->air_name);
@@ -368,6 +368,11 @@ at_add(
                        /* subtypes must have same usage as their SUP */
                        return SLAP_SCHERR_ATTR_BAD_USAGE;
                }
+
+               if ( sat->sat_flags & SLAP_AT_FINAL ) {
+                       /* cannot subtype a "final" attribute type */
+                       return SLAP_SCHERR_ATTR_BAD_SUP;
+               }
        }
 
        /*