|
Loading...
|
patches@linuxfromscratch.org
[Prev] Thread [Next] | [Prev] Date [Next]
r1766 - trunk/db matthew Mon Feb 26 00:06:42 2007
Author: matthew
Date: 2007-02-24 07:39:17 -0700 (Sat, 24 Feb 2007)
New Revision: 1766
Added:
trunk/db/db-4.5.20-fixes-1.patch
Log:
Add upstream fixes for DB-4.5.20
Added: trunk/db/db-4.5.20-fixes-1.patch
===================================================================
--- trunk/db/db-4.5.20-fixes-1.patch (rev 0)
+++ trunk/db/db-4.5.20-fixes-1.patch 2007-02-24 14:39:17 UTC (rev 1766)
@@ -0,0 +1,92 @@
+Submitted By: Matthew Burgess <matthew at linuxfromscratch dot org>
+Date: 2007-02-24
+Initial Package Version: 4.5.20
+Upstream Status: From Upstream
+Origin:
http://www.oracle.com/technology/products/berkeley-db/db/update/4.5.20/patch.4.5.20.html
+Description: Fixes a couple of issues when trying to access databases through
+ the Java API.
+
+diff -Naur db-4.5.20.orig/rep/rep_method.c db-4.5.20/rep/rep_method.c
+--- db-4.5.20.orig/rep/rep_method.c 2006-09-09 14:29:04.000000000 +0000
++++ db-4.5.20/rep/rep_method.c 2007-02-14 21:14:13.000000000 +0000
+@@ -526,10 +526,12 @@
+ * will allow the client to either perform recovery or
+ * simply join in.
+ */
+- if (announce)
++ if (announce) {
++ if ((ret = __dbt_usercopy(dbenv, dbt)) != 0)
++ goto err;
+ (void)__rep_send_message(dbenv,
+ DB_EID_BROADCAST, REP_NEWCLIENT, NULL, dbt, 0, 0);
+- else
++ } else
+ (void)__rep_send_message(dbenv,
+ DB_EID_BROADCAST, REP_ALIVE_REQ, NULL, NULL, 0, 0);
+ }
+@@ -553,6 +555,7 @@
+ }
+ if (pending_event != DB_EVENT_NO_SUCH_EVENT)
+ DB_EVENT(dbenv, pending_event, NULL);
++ __dbt_userfree(dbenv, dbt, NULL, NULL);
+ return (ret);
+ }
+
+diff -Naur db-4.5.20.orig/rep/rep_record.c db-4.5.20/rep/rep_record.c
+--- db-4.5.20.orig/rep/rep_record.c 2006-09-12 20:15:21.000000000 +0000
++++ db-4.5.20/rep/rep_record.c 2007-02-14 21:14:13.000000000 +0000
+@@ -163,6 +163,14 @@
+ return (EINVAL);
+ }
+
++ if ((ret = __dbt_usercopy(dbenv, control)) != 0 ||
++ (ret = __dbt_usercopy(dbenv, rec)) != 0) {
++ __dbt_userfree(dbenv, control, rec, NULL);
++ __db_errx(dbenv,
++ "DB_ENV->rep_process_message: error retrieving DBT contents");
++ return ret;
++ }
++
+ ret = 0;
+ db_rep = dbenv->rep_handle;
+ rep = db_rep->region;
+@@ -621,6 +629,7 @@
+ *ret_lsnp = rp->lsn;
+ ret = DB_REP_NOTPERM;
+ }
++ __dbt_userfree(dbenv, control, rec, NULL);
+ return (ret);
+ }
+
+diff -Naur db-4.5.20.orig/sequence/sequence.c db-4.5.20/sequence/sequence.c
+--- db-4.5.20.orig/sequence/sequence.c 2006-08-24 14:56:16.000000000 +0000
++++ db-4.5.20/sequence/sequence.c 2007-02-14 21:13:48.000000000 +0000
+@@ -228,6 +228,9 @@
+ 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,6 +368,7 @@
+ ret = t_ret;
+
+ ENV_LEAVE(dbenv, ip);
++ __dbt_userfree(dbenv, keyp, NULL, NULL);
+ return (ret);
+ }
+
+@@ -765,6 +769,10 @@
+ {
+ 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;
+ key->flags = seq->seq_key.flags;
--
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page
- r1766 - trunk/db matthew 2007/02/26 <=