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 + [EMAIL PROTECTED], 2007-10-23 16:07:32+02:00, [EMAIL PROTECTED](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/[EMAIL PROTECTED], 2007-10-23 16:07:31+02:00, [EMAIL PROTECTED](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); + } + + ================================================================ _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
