summaryrefslogtreecommitdiffstats
path: root/extra/db/patch.4.5.20.1
diff options
context:
space:
mode:
Diffstat (limited to 'extra/db/patch.4.5.20.1')
-rw-r--r--extra/db/patch.4.5.20.137
1 files changed, 37 insertions, 0 deletions
diff --git a/extra/db/patch.4.5.20.1 b/extra/db/patch.4.5.20.1
new file mode 100644
index 00000000..370ac3e7
--- /dev/null
+++ b/extra/db/patch.4.5.20.1
@@ -0,0 +1,37 @@
+*** sequence/sequence.c.orig 27 Sep 2006 14:56:17 -0000 12.39
+--- sequence/sequence.c 26 Oct 2006 07:36:05 -0000
+***************
+*** 228,233 ****
+--- 228,236 ----
+ seq->seq_data.ulen = seq->seq_data.size = sizeof(seq->seq_record);
+ seq->seq_rp = &seq->seq_record;
+
++ if ((ret = __dbt_usercopy(dbenv, keyp)) != 0)
++ goto err;
++
+ memset(&seq->seq_key, 0, sizeof(DBT));
+ if ((ret = __os_malloc(dbenv, keyp->size, &seq->seq_key.data)) != 0)
+ goto err;
+***************
+*** 365,370 ****
+--- 368,374 ----
+ ret = t_ret;
+
+ ENV_LEAVE(dbenv, ip);
++ __dbt_userfree(dbenv, keyp, NULL, NULL);
+ return (ret);
+ }
+
+***************
+*** 764,769 ****
+--- 768,777 ----
+ DBT *key;
+ {
+ SEQ_ILLEGAL_BEFORE_OPEN(seq, "DB_SEQUENCE->get_key");
++
++ if (F_ISSET(key, DB_DBT_USERCOPY))
++ return (__db_retcopy(seq->seq_dbp->dbenv, key,
++ seq->seq_key.data, seq->seq_key.size, NULL, 0));
+
+ key->data = seq->seq_key.data;
+ key->size = key->ulen = seq->seq_key.size;