mirror of
https://github.com/MariaDB/server.git
synced 2026-04-24 01:05:30 +02:00
Security patch to remove wrong error when one had a global update/delete privilige and a database specific SELECT privilege.
sql/sql_acl.cc: Security patch sql/sql_base.cc: Security patch sql/sql_parse.cc: Security patch tests/grant.pl: Test of security patch tests/grant.res: Test of security patch
This commit is contained in:
parent
d4b465e2f3
commit
a57e773289
5 changed files with 49 additions and 9 deletions
|
|
@ -1616,7 +1616,7 @@ Field *find_field_in_table(THD *thd,TABLE *table,const char *name,uint length,
|
|||
else
|
||||
thd->dupp_field=field;
|
||||
}
|
||||
if (check_grants && check_grant_column(thd,table,name,length))
|
||||
if (check_grants && check_grant_column(thd,table,name,length))
|
||||
return WRONG_GRANT;
|
||||
return field;
|
||||
}
|
||||
|
|
@ -1643,8 +1643,8 @@ find_field_in_tables(THD *thd,Item_field *item,TABLE_LIST *tables)
|
|||
{
|
||||
found_table=1;
|
||||
Field *find=find_field_in_table(thd,tables->table,name,length,
|
||||
grant_option &&
|
||||
tables->table->grant.want_privilege,
|
||||
test(tables->table->grant.
|
||||
want_privilege),
|
||||
1);
|
||||
if (find)
|
||||
{
|
||||
|
|
@ -1684,8 +1684,7 @@ find_field_in_tables(THD *thd,Item_field *item,TABLE_LIST *tables)
|
|||
for (; tables ; tables=tables->next)
|
||||
{
|
||||
Field *field=find_field_in_table(thd,tables->table,name,length,
|
||||
grant_option &&
|
||||
tables->table->grant.want_privilege,
|
||||
test(tables->table->grant.want_privilege),
|
||||
allow_rowid);
|
||||
if (field)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue