summaryrefslogtreecommitdiff
path: root/sql/sql_insert.cc
diff options
context:
space:
mode:
authorunknown <gkodinov/kgeorge@magare.gmz>2007-09-27 12:15:19 +0300
committerunknown <gkodinov/kgeorge@magare.gmz>2007-09-27 12:15:19 +0300
commit66f13d91208fd3fe9570ef705e350728f63f4727 (patch)
tree08e93bc69dd1af0199f82521afc1c2c4e0f6f117 /sql/sql_insert.cc
parentbd1f34d932237f2d401452f752bda7dd21f03e26 (diff)
downloadmariadb-git-66f13d91208fd3fe9570ef705e350728f63f4727.tar.gz
Bug #30468: column level privileges not respected when joining tables
When expanding a * in a USING/NATURAL join the check for table access for both tables in the join was done using the grant information of the first one. Fixed by getting the grant information for the current table while iterating through the columns of the join. mysql-test/r/grant2.result: Bug #30468: test case mysql-test/t/grant2.test: Bug #30468: test case sql/sql_acl.cc: Bug #30468: correctly check column grants sql/sql_acl.h: Bug #30468: correctly check column grants sql/sql_base.cc: Bug #30468: correctly check column grants sql/sql_insert.cc: Bug #30468: correctly check column grants
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r--sql/sql_insert.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index bd21d929291..7eb9b078ded 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -189,11 +189,9 @@ static int check_insert_fields(THD *thd, TABLE_LIST *table_list,
#ifndef NO_EMBEDDED_ACCESS_CHECKS
if (grant_option)
{
- Field_iterator_table field_it;
- field_it.set_table(table);
- if (check_grant_all_columns(thd, INSERT_ACL, &table->grant,
- table->s->db, table->s->table_name,
- &field_it))
+ Field_iterator_table_ref field_it;
+ field_it.set(table_list);
+ if (check_grant_all_columns(thd, INSERT_ACL, &field_it))
return -1;
}
#endif