summaryrefslogtreecommitdiff
path: root/sql/sql_view.cc
diff options
context:
space:
mode:
authorTatjana Azundris Nuernberg <tatjana.nuernberg@oracle.com>2011-10-06 11:35:01 +0100
committerTatjana Azundris Nuernberg <tatjana.nuernberg@oracle.com>2011-10-06 11:35:01 +0100
commitfa8e3ce64f83345ffd0b3d1640024880423c744c (patch)
tree6566752a531a799751c783417f9cefb9bffcf327 /sql/sql_view.cc
parent7944320f4e76aabd7b73015d2569f8c26f045f2c (diff)
parentd740f9e603378c2ba9bbfacd111f6fe9c6728b78 (diff)
downloadmariadb-git-fa8e3ce64f83345ffd0b3d1640024880423c744c.tar.gz
manual merge
Diffstat (limited to 'sql/sql_view.cc')
-rw-r--r--sql/sql_view.cc19
1 files changed, 10 insertions, 9 deletions
diff --git a/sql/sql_view.cc b/sql/sql_view.cc
index 0d34b5601f6..965aee65d04 100644
--- a/sql/sql_view.cc
+++ b/sql/sql_view.cc
@@ -1281,22 +1281,23 @@ bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table,
with "security_ctx" member set to 0, i.e. forcing check_table_access()
to use active user's security context.
- There is no need for creating similar copies of table list elements
- for underlying tables since they are just have been constructed and
- thus have TABLE_LIST::security_ctx == 0 and fresh TABLE_LIST::grant
- member.
+ There is no need for creating similar copies of TABLE_LIST elements
+ for underlying tables since they just have been constructed and thus
+ have TABLE_LIST::security_ctx == 0 and fresh TABLE_LIST::grant member.
Finally at this point making sure we have SHOW_VIEW_ACL on the views
will suffice as we implicitly require SELECT_ACL anyway.
*/
- TABLE_LIST view;
- bzero((char *)&view, sizeof(TABLE_LIST));
- view.db= table->db;
- view.table_name= table->table_name;
+ TABLE_LIST view_no_suid;
+ bzero(static_cast<void *>(&view_no_suid), sizeof(TABLE_LIST));
+ view_no_suid.db= table->db;
+ view_no_suid.table_name= table->table_name;
+
+ DBUG_ASSERT(view_tables == NULL || view_tables->security_ctx == NULL);
if (check_table_access(thd, SELECT_ACL, view_tables, UINT_MAX, TRUE) ||
- check_table_access(thd, SHOW_VIEW_ACL, &view, UINT_MAX, TRUE))
+ check_table_access(thd, SHOW_VIEW_ACL, &view_no_suid, UINT_MAX, TRUE))
{
my_message(ER_VIEW_NO_EXPLAIN, ER(ER_VIEW_NO_EXPLAIN), MYF(0));
goto err;