]> git.sur5r.net Git - openldap/commitdiff
TS#3213: free copy of e_attrs before retrying the transaction in bdb_modify()
authorRalf Haferkamp <ralf@openldap.org>
Tue, 29 Jun 2004 14:52:03 +0000 (14:52 +0000)
committerRalf Haferkamp <ralf@openldap.org>
Tue, 29 Jun 2004 14:52:03 +0000 (14:52 +0000)
servers/slapd/back-bdb/modify.c

index 3c2d47e044260ab8450282c905e54092d8ae8589..58555376483fec27410e49f5cdc457d678f19891 100644 (file)
@@ -615,6 +615,8 @@ retry:      /* transaction retry */
                switch( rs->sr_err ) {
                case DB_LOCK_DEADLOCK:
                case DB_LOCK_NOTGRANTED:
+                       attrs_free( dummy.e_attrs ); 
+                       dummy.e_attrs = NULL;
                        goto retry;
                }
                goto return_results;
@@ -634,6 +636,8 @@ retry:      /* transaction retry */
                switch( rs->sr_err ) {
                case DB_LOCK_DEADLOCK:
                case DB_LOCK_NOTGRANTED:
+                       attrs_free( dummy.e_attrs ); 
+                       dummy.e_attrs = NULL;
                        goto retry;
                }
                rs->sr_text = "entry update failed";
@@ -653,6 +657,8 @@ retry:      /* transaction retry */
                case BDB_CSN_ABORT :
                        goto return_results;
                case BDB_CSN_RETRY :
+                       attrs_free( dummy.e_attrs ); 
+                       dummy.e_attrs = NULL;
                        goto retry;
                }
        }
@@ -688,6 +694,8 @@ retry:      /* transaction retry */
                switch( rc ) {
                case DB_LOCK_DEADLOCK:
                case DB_LOCK_NOTGRANTED:
+                       attrs_free( dummy.e_attrs ); 
+                       dummy.e_attrs = NULL;
                        goto retry;
                }