]> git.sur5r.net Git - openldap/commitdiff
fix previous commit
authorPierangelo Masarati <ando@openldap.org>
Sat, 22 Nov 2008 18:35:19 +0000 (18:35 +0000)
committerPierangelo Masarati <ando@openldap.org>
Sat, 22 Nov 2008 18:35:19 +0000 (18:35 +0000)
servers/slapd/back-bdb/modify.c

index f3f1bb144af87f96de4bf01e2dd13aa03a0740af..6ef43ca76dcc593a961e59d9ffc543cfad4f343f 100644 (file)
@@ -287,11 +287,11 @@ int bdb_modify_internal(
                                rc = bdb_index_values( op, tid, ap->a_desc,
                                        vals, e->e_id, SLAP_INDEX_DELETE_OP );
                                if ( rc != LDAP_SUCCESS ) {
-                                       attrs_free( e->e_attrs );
-                                       e->e_attrs = save_attrs;
                                        Debug( LDAP_DEBUG_ANY,
                                                "%s: attribute \"%s\" index delete failure\n",
                                                op->o_log_prefix, ap->a_desc->ad_cname.bv_val, 0 );
+                                       attrs_free( e->e_attrs );
+                                       e->e_attrs = save_attrs;
                                        return rc;
                                }
                        }
@@ -306,11 +306,11 @@ int bdb_modify_internal(
                                ap->a_nvals,
                                e->e_id, SLAP_INDEX_ADD_OP );
                        if ( rc != LDAP_SUCCESS ) {
-                               attrs_free( e->e_attrs );
-                               e->e_attrs = save_attrs;
                                Debug( LDAP_DEBUG_ANY,
                                       "%s: attribute \"%s\" index add failure\n",
                                        op->o_log_prefix, ap->a_desc->ad_cname.bv_val, 0 );
+                               attrs_free( e->e_attrs );
+                               e->e_attrs = save_attrs;
                                return rc;
                        }
                }