]> git.pld-linux.org Git - packages/mysql.git/blame - mysql-bug-16470.patch
- update from ourdelta patches: sphinxsearch/sphinx_engine/sphinx.5.0.86.patch
[packages/mysql.git] / mysql-bug-16470.patch
CommitLineData
85beda0e 1From: kpettersson
45c53499 2Date: October 24 2007 10:29am
85beda0e 3Subject: bk commit into 5.0 tree (thek:1.2537) BUG#16470
4
5Below is the list of changes that have just been committed into a local
65.0 repository of thek. When thek does a push these changes will
7be propagated to the main repository and, within 24 hours after the
8push, to the public repository.
9For information on how to access the public repository
10see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
11
45c53499 12ChangeSet@stripped, 2007-10-24 10:29:24+02:00, thek@adventure.(none) +1 -0
85beda0e 13 Bug #16470 crash on grant if old grant tables
14
15 If a user upgraded the server without running mysql_upgrade, and later tried
16 to run a GRANT command on grant tables like tables_priv, the server would
17 crash.
18
19 This patch fixes this problem by checking if the grant tables were properly
20 initialized before attempt to store any new grants.
21
45c53499 22 sql/sql_acl.cc@stripped, 2007-10-24 10:29:21+02:00, thek@adventure.(none) +3 -6
85beda0e 23 If grant_reload fails, don't try to store new GRANTs because the grant tables
24 weren't properly initialized.
25
26diff -Nrup a/sql/sql_acl.cc b/sql/sql_acl.cc
27--- a/sql/sql_acl.cc 2007-06-20 14:24:27 +02:00
45c53499
ER
28+++ b/sql/sql_acl.cc 2007-10-24 10:29:21 +02:00
29@@ -2780,7 +2780,7 @@ bool mysql_table_grant(THD *thd, TABLE_L
30 "--skip-grant-tables"); /* purecov: inspected */
31 DBUG_RETURN(TRUE); /* purecov: inspected */
85beda0e 32 }
45c53499
ER
33- if (rights & ~TABLE_ACLS)
34+ if ((rights & ~TABLE_ACLS) || !grant_option)
85beda0e 35 {
45c53499
ER
36 my_message(ER_ILLEGAL_GRANT_FOR_TABLE, ER(ER_ILLEGAL_GRANT_FOR_TABLE),
37 MYF(0));
38@@ -3328,20 +3328,17 @@ void grant_free(void)
39 my_bool grant_init()
40 {
41 THD *thd;
42- my_bool return_val;
43 DBUG_ENTER("grant_init");
44
45 if (!(thd= new THD))
85beda0e 46 DBUG_RETURN(1); /* purecov: deadcode */
47 thd->thread_stack= (char*) &thd;
48 thd->store_globals();
49- return_val= grant_reload(thd);
45c53499 50+ grant_option= !grant_reload(thd);
85beda0e 51 delete thd;
52 /* Remember that we don't have a THD */
53 my_pthread_setspecific_ptr(THR_THD, 0);
45c53499
ER
54- /* Set the grant option flag so we will check grants */
55- grant_option= TRUE;
85beda0e 56- DBUG_RETURN(return_val);
45c53499 57+ DBUG_RETURN(!grant_option);
85beda0e 58 }
59
60
This page took 0.165316 seconds and 4 git commands to generate.