SOURCES: mysql-bug-16470.patch (NEW) - commit 36146
glen
glen at pld-linux.org
Wed Oct 24 11:49:06 CEST 2007
Author: glen Date: Wed Oct 24 09:49:06 2007 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- commit 36146
---- Files affected:
SOURCES:
mysql-bug-16470.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/mysql-bug-16470.patch
diff -u /dev/null SOURCES/mysql-bug-16470.patch:1.1
--- /dev/null Wed Oct 24 11:49:06 2007
+++ SOURCES/mysql-bug-16470.patch Wed Oct 24 11:49:00 2007
@@ -0,0 +1,59 @@
+From: kpettersson
+Date: October 23 2007 4:07pm
+Subject: bk commit into 5.0 tree (thek:1.2537) BUG#16470
+
+Below is the list of changes that have just been committed into a local
+5.0 repository of thek. When thek 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 at stripped, 2007-10-23 16:07:32+02:00, thek at adventure.(none) +1 -0
+ Bug #16470 crash on grant if old grant tables
+
+ If a user upgraded the server without running mysql_upgrade, and later tried
+ to run a GRANT command on grant tables like tables_priv, the server would
+ crash.
+
+ This patch fixes this problem by checking if the grant tables were properly
+ initialized before attempt to store any new grants.
+
+ sql/sql_acl.cc at stripped, 2007-10-23 16:07:31+02:00, thek at adventure.(none) +9 -3
+ If grant_reload fails, don't try to store new GRANTs because the grant tables
+ weren't properly initialized.
+
+diff -Nrup a/sql/sql_acl.cc b/sql/sql_acl.cc
+--- a/sql/sql_acl.cc 2007-06-20 14:24:27 +02:00
++++ b/sql/sql_acl.cc 2007-10-23 16:07:31 +02:00
+@@ -2786,7 +2786,12 @@ bool mysql_table_grant(THD *thd, TABLE_L
+ MYF(0));
+ DBUG_RETURN(TRUE);
+ }
+-
++ if (!grant_option)
++ {
++ my_message(ER_TABLE_NEEDS_UPGRADE, ER(ER_ILLEGAL_GRANT_FOR_TABLE),
++ MYF(0));
++ DBUG_RETURN(TRUE);
++ }
+ if (!revoke_grant)
+ {
+ if (columns.elements)
+@@ -3335,13 +3340,14 @@ my_bool grant_init()
+ DBUG_RETURN(1); /* purecov: deadcode */
+ thd->thread_stack= (char*) &thd;
+ thd->store_globals();
+- return_val= grant_reload(thd);
++ if (grant_reload(thd))
++ return TRUE;
+ delete thd;
+ /* Remember that we don't have a THD */
+ my_pthread_setspecific_ptr(THR_THD, 0);
+ /* Set the grant option flag so we will check grants */
+ grant_option= TRUE;
+- DBUG_RETURN(return_val);
++ DBUG_RETURN(FALSE);
+ }
+
+
================================================================
More information about the pld-cvs-commit
mailing list