summaryrefslogtreecommitdiff
path: root/sql/sql_acl.cc
diff options
context:
space:
mode:
authorunknown <kostja@dipika.(none)>2008-02-08 18:55:07 +0300
committerunknown <kostja@dipika.(none)>2008-02-08 18:55:07 +0300
commit81ac684b0677a8116db8bfef719b0e8ae8b7f394 (patch)
tree3a57c4b096fb93cacd1a7a226b7cf5ffc4d1c8fc /sql/sql_acl.cc
parentdf2cf8c78dc022472dd22584a140f579ad8cfe03 (diff)
parentd157f5fd43949d9927ec4683b5e66e32a945e13d (diff)
downloadmariadb-git-81ac684b0677a8116db8bfef719b0e8ae8b7f394.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into dipika.(none):/opt/local/work/mysql-5.1-runtime include/my_sys.h: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/suite/binlog/r/binlog_row_binlog.result: Auto merged sql/item_cmpfunc.cc: Auto merged sql/log.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged sql/set_var.h: Auto merged sql/sql_acl.cc: Auto merged sql-common/client.c: Auto merged sql/sql_parse.cc: Auto merged sql/sql_view.cc: Auto merged
Diffstat (limited to 'sql/sql_acl.cc')
-rw-r--r--sql/sql_acl.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index 0d563ab9051..b04f624f746 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -3041,6 +3041,12 @@ bool mysql_table_grant(THD *thd, TABLE_LIST *table_list,
}
#endif
+ /*
+ The lock api is depending on the thd->lex variable which needs to be
+ re-initialized.
+ */
+ Query_tables_list backup;
+ thd->lex->reset_n_backup_query_tables_list(&backup);
if (simple_open_n_lock_tables(thd,tables))
{ // Should never happen
close_thread_tables(thd); /* purecov: deadcode */
@@ -3173,6 +3179,7 @@ bool mysql_table_grant(THD *thd, TABLE_LIST *table_list,
send_ok(thd);
/* Tables are automatically closed */
+ thd->lex->restore_backup_query_tables_list(&backup);
DBUG_RETURN(result);
}
@@ -3862,7 +3869,7 @@ bool check_grant(THD *thd, ulong want_access, TABLE_LIST *tables,
of other queries). For simple queries first_not_own_table is 0.
*/
for (i= 0, table= tables;
- table != first_not_own_table && i < number;
+ i < number && table != first_not_own_table;
table= table->next_global, i++)
{
/* Remove SHOW_VIEW_ACL, because it will be checked during making view */