Author: bdubbs
Date: 2006-07-29 19:56:02 -0600 (Sat, 29 Jul 2006)
New Revision: 1609
Added:
trunk/db/
trunk/db/db-4.4.20-trap-1.patch
Log:
Add Berkelry patch from Sleepycat
Added: trunk/db/db-4.4.20-trap-1.patch
===================================================================
--- trunk/db/db-4.4.20-trap-1.patch (rev 0)
+++ trunk/db/db-4.4.20-trap-1.patch 2006-07-30 01:56:02 UTC (rev 1609)
@@ -0,0 +1,65 @@
+Submitted By: Bruce Dubbs <bdubbs AT linuxfromscratch DOT org>
+Date: 2006-07-29
+Initial Package Version: 4.4.20
+Origin: Sleepycat
+Description: Fix bugs that could cause traps
+
+
+*** qam/qam_files.c.orig 2005-10-20 11:57:12.000000000 -0700
+--- qam/qam_files.c 2006-01-27 13:38:38.000000000 -0800
+***************
+*** 411,416 ****
+--- 411,422 ----
+ DB_APP_DATA, buf, 0, NULL, &real_name)) != 0)
+ goto err;
+ #endif
++
++ mpf = array->mpfarray[offset].mpf;
++ /* This extent my already be marked for delete and closed. */
++ if (mpf == NULL)
++ goto err;
++
+ /*
+ * The log must be flushed before the file is deleted. We depend on
+ * the log record of the last delete to recreate the file if we crash.
+***************
+*** 418,424 ****
+ if (LOGGING_ON(dbenv) && (ret = __log_flush(dbenv, NULL)) != 0)
+ goto err;
+
+- mpf = array->mpfarray[offset].mpf;
+ (void)__memp_set_flags(mpf, DB_MPOOL_UNLINK, 1);
+ /* Someone could be real slow, let them close it down. */
+ if (array->mpfarray[offset].pinref != 0)
+--- 424,429 ----
+
+
+*** txn/txn.c.orig Tue Nov 1 06:50:03 2005
+--- txn/txn.c Tue Jan 31 15:05:13 2006
+***************
+*** 1049,1060 ****
+--- 1049,1062 ----
+ return (ret);
+ memcpy(txn->name, name, len);
+
++ TXN_SYSTEM_LOCK(dbenv);
+ if (td->name != INVALID_ROFF) {
+ __db_shalloc_free(
+ &mgr->reginfo, R_ADDR(&mgr->reginfo, td->name));
+ td->name = INVALID_ROFF;
+ }
+ if ((ret = __db_shalloc(&mgr->reginfo, len, 0, &p)) != 0) {
++ TXN_SYSTEM_UNLOCK(dbenv);
+ __db_err(dbenv,
+ "Unable to allocate memory for transaction name");
+
+***************
+*** 1063,1068 ****
+--- 1065,1071 ----
+
+ return (ret);
+ }
++ TXN_SYSTEM_UNLOCK(dbenv);
+ td->name = R_OFFSET(&mgr->reginfo, p);
+ memcpy(p, name, len);
+
--
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page