[Pkg-mysql-commits] r1048 - in branches/sid-5.0/debian: . patches

Norbert Tretkowski nobse at alioth.debian.org
Thu Dec 6 18:51:28 UTC 2007


Author: nobse
Date: 2007-12-06 18:51:28 +0000 (Thu, 06 Dec 2007)
New Revision: 1048

Added:
   branches/sid-5.0/debian/patches/91_SECURITY_CVE-2007-5925.dpatch
Modified:
   branches/sid-5.0/debian/changelog
   branches/sid-5.0/debian/patches/00list
Log:
I really wonder why the fix for CVE-2007-5925 is not included in the new release...


Modified: branches/sid-5.0/debian/changelog
===================================================================
--- branches/sid-5.0/debian/changelog	2007-12-06 18:42:34 UTC (rev 1047)
+++ branches/sid-5.0/debian/changelog	2007-12-06 18:51:28 UTC (rev 1048)
@@ -3,10 +3,9 @@
   * New upstream release.
     + Fix a crash in mysql_client_test due to gcc 4.x optimizations.
       (closes: #452558)
-  * Update/drop patches:
+  * Update patches:
     + debian/patches/41_scripts__mysql_install_db.sh__no_test.dpatch
     + debian/patches/89_ndb__staticlib.dpatch
-    + debian/patches/91_SECURITY_CVE-2007-5925.dpatch
   * Re-add manpages, they are licensed under GPL now and redistribution is
     permitted.
   * Drop linux-libc-dev build-dependency, it's now being pulled by libc-dev
@@ -19,7 +18,7 @@
   * Add Vcs-* and Homepage fields to source stanza in control file.
   * Update mysqlreport to 3.2 release.
 
- -- Norbert Tretkowski <nobse at debian.org>  Thu, 06 Dec 2007 19:38:14 +0100
+ -- Norbert Tretkowski <nobse at debian.org>  Thu, 06 Dec 2007 19:50:27 +0100
 
 mysql-dfsg-5.0 (5.0.45-3) unstable; urgency=high
 

Modified: branches/sid-5.0/debian/patches/00list
===================================================================
--- branches/sid-5.0/debian/patches/00list	2007-12-06 18:42:34 UTC (rev 1047)
+++ branches/sid-5.0/debian/patches/00list	2007-12-06 18:51:28 UTC (rev 1048)
@@ -11,3 +11,4 @@
 88_mctype_attrib.dpatch
 89_ndb__staticlib.dpatch
 90_upstreamdebiandir.dpatch
+91_SECURITY_CVE-2007-5925.dpatch

Added: branches/sid-5.0/debian/patches/91_SECURITY_CVE-2007-5925.dpatch
===================================================================
--- branches/sid-5.0/debian/patches/91_SECURITY_CVE-2007-5925.dpatch	                        (rev 0)
+++ branches/sid-5.0/debian/patches/91_SECURITY_CVE-2007-5925.dpatch	2007-12-06 18:51:28 UTC (rev 1048)
@@ -0,0 +1,119 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 91_SECURITY_CVE-2007-5925.dpatch by  <nobse at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+ at DPATCH@
+diff -ru old/innobase/include/db0err.h new/innobase/include/db0err.h
+--- old/innobase/include/db0err.h	2007-07-04 16:06:59.000000000 +0300
++++ new/innobase/include/db0err.h	2007-11-15 10:23:51.000000000 +0200
+@@ -57,6 +57,18 @@
+ 					buffer pool (for big transactions,
+ 					InnoDB stores the lock structs in the
+ 					buffer pool) */
++#define DB_FOREIGN_DUPLICATE_KEY 46	/* foreign key constraints
++					activated by the operation would
++					lead to a duplicate key in some
++					table */
++#define DB_TOO_MANY_CONCURRENT_TRXS 47	/* when InnoDB runs out of the
++					preconfigured undo slots, this can
++					only happen when there are too many
++					concurrent transactions */
++#define DB_UNSUPPORTED		48	/* when InnoDB sees any artefact or
++					a feature that it can't recoginize or
++					work with e.g., FT indexes created by
++					a later version of the engine. */
+ 
+ /* The following are partial failure codes */
+ #define DB_FAIL 		1000
+diff -ru old/innobase/include/page0cur.h new/innobase/include/page0cur.h
+--- old/innobase/include/page0cur.h	2007-07-04 16:06:10.000000000 +0300
++++ new/innobase/include/page0cur.h	2007-11-15 10:23:51.000000000 +0200
+@@ -22,6 +22,7 @@
+ 
+ /* Page cursor search modes; the values must be in this order! */
+ 
++#define	PAGE_CUR_UNSUPP	0
+ #define	PAGE_CUR_G	1
+ #define	PAGE_CUR_GE	2
+ #define	PAGE_CUR_L	3
+diff -ru old/sql/ha_innodb.cc new/sql/ha_innodb.cc
+--- old/sql/ha_innodb.cc	2007-07-04 16:06:48.000000000 +0300
++++ new/sql/ha_innodb.cc	2007-11-15 10:25:55.000000000 +0200
+@@ -526,6 +526,9 @@
+  		}
+ 
+     		return(HA_ERR_LOCK_TABLE_FULL);
++ 	} else if (error == DB_UNSUPPORTED) {
++ 
++ 		return(HA_ERR_UNSUPPORTED);
+     	} else {
+     		return(-1);			// Unknown error
+     	}
+@@ -3689,11 +3692,21 @@
+ 		  and comparison of non-latin1 char type fields in
+ 		  innobase_mysql_cmp() to get PAGE_CUR_LE_OR_EXTENDS to
+ 		  work correctly. */
+-
+-		default:			assert(0);
++		case HA_READ_MBR_CONTAIN:
++		case HA_READ_MBR_INTERSECT:
++		case HA_READ_MBR_WITHIN:
++		case HA_READ_MBR_DISJOINT:
++			my_error(ER_TABLE_CANT_HANDLE_SPKEYS, MYF(0));
++			return(PAGE_CUR_UNSUPP);
++		/* do not use "default:" in order to produce a gcc warning:
++		enumeration value '...' not handled in switch
++		(if -Wswitch or -Wall is used)
++		*/
+ 	}
+ 
+-	return(0);
++	my_error(ER_CHECK_NOT_IMPLEMENTED, MYF(0), "this functionality");
++
++	return(PAGE_CUR_UNSUPP);
+ }
+ 
+ /*
+@@ -3831,11 +3844,18 @@
+ 
+ 	last_match_mode = (uint) match_mode;
+ 
+-	innodb_srv_conc_enter_innodb(prebuilt->trx);
++	if (mode != PAGE_CUR_UNSUPP) {
+ 
+-	ret = row_search_for_mysql((byte*) buf, mode, prebuilt, match_mode, 0);
++		innodb_srv_conc_enter_innodb(prebuilt->trx);
+ 
+-	innodb_srv_conc_exit_innodb(prebuilt->trx);
++		ret = row_search_for_mysql((byte*) buf, mode, prebuilt,
++					   match_mode, 0);
++
++		innodb_srv_conc_exit_innodb(prebuilt->trx);
++	} else {
++
++		ret = DB_UNSUPPORTED;
++	}
+ 
+ 	if (ret == DB_SUCCESS) {
+ 		error = 0;
+@@ -5150,8 +5170,16 @@
+ 	mode2 = convert_search_mode_to_innobase(max_key ? max_key->flag :
+                                                 HA_READ_KEY_EXACT);
+ 
+-	n_rows = btr_estimate_n_rows_in_range(index, range_start,
+-						mode1, range_end, mode2);
++	if (mode1 != PAGE_CUR_UNSUPP && mode2 != PAGE_CUR_UNSUPP) {
++
++		n_rows = btr_estimate_n_rows_in_range(index, range_start,
++						      mode1, range_end,
++						      mode2);
++	} else {
++
++		n_rows = 0;
++	}
++
+ 	dtuple_free_for_mysql(heap1);
+ 	dtuple_free_for_mysql(heap2);
+ 




More information about the Pkg-mysql-commits mailing list