Below is the list of changes that have just been committed into a local
5.1 repository of marty. When marty does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2006-08-28 11:03:26+02:00, mskold@stripped +4 -0
buffer overflow and information exposure bugs fixed (reported by Stefano Di Paola), CSC#10360
sql/ha_ndbcluster.cc@stripped, 2006-08-24 15:00:33+02:00, mskold@stripped +3 -1
Bug #20993 Print NodeID in MySQL node's logs
sql/sql_parse.cc@stripped, 2006-08-24 15:56:24+02:00, mskold@stripped +17 -0
buffer overflow and information exposure bugs fixed (reported by Stefano Di Paola), CSC#10360
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp@stripped, 2006-08-25 17:23:08+02:00, mskold@stripped +1 -3
bug#20904: GCP Stop during GCP_SAVEREQ due to FILE_CHANGE_PROBLEM in zero-page: Reset logpartstate if file_change_problem after writeing of zero page is done
storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp@stripped, 2006-08-24 15:08:52+02:00, mskold@stripped +3 -0
limit the max. size of allocated page chunks (Bug #21137)
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: mskold
# Host: linux.site
# Root: /windows/Linux_space/MySQL/mysql-5.1-wl2325-5.0
--- 1.481/sql/sql_parse.cc 2006-08-28 11:03:33 +02:00
+++ 1.482/sql/sql_parse.cc 2006-08-28 11:03:33 +02:00
@@ -993,6 +993,13 @@ static int check_connection(THD *thd)
*passwd++ : strlen(passwd);
db= thd->client_capabilities & CLIENT_CONNECT_WITH_DB ?
db + passwd_len + 1 : 0;
+ uint db_len= db ? strlen(db) : 0;
+
+ if (passwd + passwd_len + db_len > (char *)net->read_pos + pkt_len)
+ {
+ inc_host_errors(&thd->remote.sin_addr);
+ return ER_HANDSHAKE_ERROR;
+ }
/* Since 4.1 all database names are stored in utf8 */
if (db)
@@ -1574,7 +1581,17 @@ bool dispatch_command(enum enum_server_c
{
char *db, *tbl_name;
uint db_len= *(uchar*) packet;
+ if (db_len >= packet_length || db_len > NAME_LEN)
+ {
+ my_message(ER_UNKNOWN_COM_ERROR, ER(ER_UNKNOWN_COM_ERROR), MYF(0));
+ break;
+ }
uint tbl_len= *(uchar*) (packet + db_len + 1);
+ if (db_len+tbl_len+2 > packet_length || tbl_len > NAME_LEN)
+ {
+ my_message(ER_UNKNOWN_COM_ERROR, ER(ER_UNKNOWN_COM_ERROR), MYF(0));
+ break;
+ }
statistic_increment(thd->status_var.com_other, &LOCK_status);
thd->enable_slow_log= opt_log_slow_admin_statements;
--- 1.84/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2006-08-28 11:03:33 +02:00
+++ 1.85/storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp 2006-08-28 11:03:34 +02:00
@@ -12554,19 +12554,17 @@ void Dblqh::lastWriteInFileLab(Signal* s
void Dblqh::writePageZeroLab(Signal* signal)
{
- if (false && logPartPtr.p->logPartState == LogPartRecord::FILE_CHANGE_PROBLEM)
+ if (logPartPtr.p->logPartState == LogPartRecord::FILE_CHANGE_PROBLEM)
{
if (logPartPtr.p->firstLogQueue == RNIL)
{
jam();
logPartPtr.p->logPartState = LogPartRecord::IDLE;
- ndbout_c("resetting logPartState to IDLE");
}
else
{
jam();
logPartPtr.p->logPartState = LogPartRecord::ACTIVE;
- ndbout_c("resetting logPartState to ACTIVE");
}
}
--- 1.3/storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp 2006-08-28 11:03:34 +02:00
+++ 1.4/storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp 2006-08-28 11:03:34 +02:00
@@ -401,7 +401,10 @@ void Dbtup::allocMoreFragPages(Fragrecor
/* -----------------------------------------------------------------*/
// We will grow by 18.75% plus two more additional pages to grow
// a little bit quicker in the beginning.
+// Once reaching a chunk size of 1024 pages we don't grow beyond
+// that anymore to prevent over-agressive allocation
/* -----------------------------------------------------------------*/
+ if (noAllocPages > 1024) noAllocPages = 1024;
allocFragPages(regFragPtr, noAllocPages);
}//Dbtup::allocMoreFragPages()
--- 1.247/sql/ha_ndbcluster.cc 2006-08-28 11:03:34 +02:00
+++ 1.248/sql/ha_ndbcluster.cc 2006-08-28 11:03:34 +02:00
@@ -5425,7 +5425,9 @@ bool ndbcluster_init()
pthread_cond_destroy(&COND_ndb_util_thread);
goto ndbcluster_init_error;
}
-
+
+ sql_print_information("NDB: NodeID is %d",
+ g_ndb_cluster_connection->node_id());
ndbcluster_inited= 1;
DBUG_RETURN(FALSE);
| Thread |
|---|
| • bk commit into 5.1 tree (mskold:1.2036) | Martin Skold | 28 Aug |