List:Commits« Previous MessageNext Message »
From:Alfranio Correia Date:May 13 2009 9:03am
Subject:Re: bzr commit into mysql-6.0-rpl branch (zhenxing.he:2846) Bug#34227
View as plain text  
Hi Jasonh,

The patch looks good. Patch approved.
Besides the translation to other languages, I think you should add a
space after the comma.
If you do implement my suggestion, remember to appropriately take care
of the size of the string
in order to avoid stack corruption issues.

Cheers.


He Zhenxing wrote:
> #At file:///media/sdb2/hezx/work/mysql/bzrwork/b34227/6.0-rpl/ based on
> revid:luis.soares@stripped
>
>  2846 He Zhenxing	2009-05-12
>       BUG#34227 Replication permission error message is misleading
>       
>       According to Jon's comment, undo previous patch, and add (at least
>       one of) to the error message instead.
>
>     M  mysql-test/r/mysqldump.result
>     M  sql/share/errmsg.txt
>     M  sql/sp_head.cc
>     M  sql/sql_acl.cc
>     M  sql/sql_acl.h
>     M  sql/sql_parse.cc
> === modified file 'mysql-test/r/mysqldump.result'
> --- a/mysql-test/r/mysqldump.result	2009-04-30 14:35:36 +0000
> +++ b/mysql-test/r/mysqldump.result	2009-05-12 10:27:15 +0000
> @@ -3555,11 +3555,11 @@ use test;
>  create user mysqltest_1@localhost;
>  create table t1(a int, b varchar(34));
>  reset master;
> -mysqldump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you
> need the RELOAD privilege for this operation (1227)
> -mysqldump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you
> need the RELOAD privilege for this operation (1227)
> +mysqldump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you
> need (at least one of) the RELOAD privilege(s) for this operation (1227)
> +mysqldump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you
> need (at least one of) the RELOAD privilege(s) for this operation (1227)
>  grant RELOAD on *.* to mysqltest_1@localhost;
> -mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the
> SUPER|REPLICATION CLIENT privilege for this operation (1227)
> -mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the
> SUPER|REPLICATION CLIENT privilege for this operation (1227)
> +mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need (at least
> one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation (1227)
> +mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need (at least
> one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation (1227)
>  grant REPLICATION CLIENT on *.* to mysqltest_1@localhost;
>  drop table t1;
>  drop user mysqltest_1@localhost;
>
> === modified file 'sql/share/errmsg.txt'
> --- a/sql/share/errmsg.txt	2009-04-30 14:35:36 +0000
> +++ b/sql/share/errmsg.txt	2009-05-12 10:27:15 +0000
> @@ -4620,7 +4620,7 @@ ER_USER_LIMIT_REACHED 42000 
>          swe "Anv?are '%-.64s' har ?skridit '%s' (nuvarande v?e: %ld)"
>  ER_SPECIFIC_ACCESS_DENIED_ERROR 42000 
>          nla "Toegang geweigerd. U moet het %-.128s privilege hebben voor deze
> operatie"
> -        eng "Access denied; you need the %-.128s privilege for this operation"
> +        eng "Access denied; you need (at least one of) the %-.128s privilege(s) for
> this operation"
>          ger "Kein Zugriff. Hierf?d die Berechtigung %-.128s ben?t"
>          ita "Accesso non consentito. Serve il privilegio %-.128s per questa
> operazione"
>          por "Acesso negado. Voc?recisa o privil?o %-.128s para essa opera?"
>
> === modified file 'sql/sp_head.cc'
> --- a/sql/sp_head.cc	2009-04-30 14:35:36 +0000
> +++ b/sql/sp_head.cc	2009-05-12 10:27:15 +0000
> @@ -1518,7 +1518,7 @@ sp_head::execute_trigger(THD *thd,
>    if (!(grant_info->privilege & TRIGGER_ACL))
>    {
>      char priv_desc[128];
> -    get_privilege_desc(priv_desc, sizeof(priv_desc), TRIGGER_ACL, FALSE);
> +    get_privilege_desc(priv_desc, sizeof(priv_desc), TRIGGER_ACL);
>  
>      my_error(ER_TABLEACCESS_DENIED_ERROR, MYF(0), priv_desc,
>               thd->security_ctx->priv_user,
> thd->security_ctx->host_or_ip,
>
> === modified file 'sql/sql_acl.cc'
> --- a/sql/sql_acl.cc	2009-04-30 14:35:36 +0000
> +++ b/sql/sql_acl.cc	2009-05-12 10:27:15 +0000
> @@ -3015,7 +3015,7 @@ int mysql_table_grant(THD *thd, TABLE_LI
>        {
>          char command[128];
>          get_privilege_desc(command, sizeof(command),
> -                           table_list->grant.want_privilege, FALSE);
> +                           table_list->grant.want_privilege);
>          my_error(ER_TABLEACCESS_DENIED_ERROR, MYF(0),
>                   command, thd->security_ctx->priv_user,
>                   thd->security_ctx->host_or_ip, table_list->alias);
> @@ -3993,7 +3993,7 @@ err:
>    if (!no_errors)				// Not a silent skip of table
>    {
>      char command[128];
> -    get_privilege_desc(command, sizeof(command), want_access, FALSE);
> +    get_privilege_desc(command, sizeof(command), want_access);
>      my_error(ER_TABLEACCESS_DENIED_ERROR, MYF(0),
>               command,
>               sctx->priv_user,
> @@ -4149,7 +4149,7 @@ bool check_grant_column(THD *thd, GRANT_
>  err:
>    rw_unlock(&LOCK_grant);
>    char command[128];
> -  get_privilege_desc(command, sizeof(command), want_access, FALSE);
> +  get_privilege_desc(command, sizeof(command), want_access);
>    my_error(ER_COLUMNACCESS_DENIED_ERROR, MYF(0),
>             command,
>             sctx->priv_user,
> @@ -4311,7 +4311,7 @@ err:
>    rw_unlock(&LOCK_grant);
>  
>    char command[128];
> -  get_privilege_desc(command, sizeof(command), want_access, FALSE);
> +  get_privilege_desc(command, sizeof(command), want_access);
>    /*
>      Do not give an error message listing a column name unless the user has
>      privilege to see all columns.
> @@ -5063,25 +5063,16 @@ static int show_routine_grants(THD* thd,
>    return error;
>  }
>  
> -/**
> +/*
>    Make a clear-text version of the requested privilege.
> -
> -  @param to         pointer to the buffer
> -  @param max_length max length of the description message allowed
> -  @param access     privileges to check for access
> -  @param any        if TRUE, any of the privileges is sufficient,
> -                    if FALSE, all privileges are required
>  */
>  
> -void get_privilege_desc(char *to, uint max_length, ulong access, bool any)
> +void get_privilege_desc(char *to, uint max_length, ulong access)
>  {
>    uint pos;
>    char *start=to;
> -  char sep=',';
>    DBUG_ASSERT(max_length >= 30);		// For end ',' removal
>  
> -  if (any)
> -    sep= '|';
>    if (access)
>    {
>      max_length--;				// Reserve place for end-zero
> @@ -5091,7 +5082,7 @@ void get_privilege_desc(char *to, uint m
>  	  command_lengths[pos] + (uint) (to-start) < max_length)
>        {
>  	to= strmov(to, command_array[pos]);
> -	*to++= sep;
> +	*to++=',';
>        }
>      }
>      to--;					// Remove end ','
>
> === modified file 'sql/sql_acl.h'
> --- a/sql/sql_acl.h	2009-04-02 08:50:24 +0000
> +++ b/sql/sql_acl.h	2009-05-12 10:27:15 +0000
> @@ -261,7 +261,7 @@ ulong get_column_grant(THD *thd, GRANT_I
>                         const char *db_name, const char *table_name,
>                         const char *field_name);
>  bool mysql_show_grants(THD *thd, LEX_USER *user);
> -void get_privilege_desc(char *to, uint max_length, ulong access, bool any);
> +void get_privilege_desc(char *to, uint max_length, ulong access);
>  void get_mqh(const char *user, const char *host, USER_CONN *uc);
>  bool mysql_create_user(THD *thd, List <LEX_USER> &list);
>  bool mysql_drop_user(THD *thd, List <LEX_USER> &list);
>
> === modified file 'sql/sql_parse.cc'
> --- a/sql/sql_parse.cc	2009-04-30 14:35:36 +0000
> +++ b/sql/sql_parse.cc	2009-05-12 10:27:15 +0000
> @@ -5540,7 +5540,7 @@ bool check_global_access(THD *thd, ulong
>    char command[128];
>    if ((thd->security_ctx->master_access & want_access))
>      return 0;
> -  get_privilege_desc(command, sizeof(command), want_access, TRUE);
> +  get_privilege_desc(command, sizeof(command), want_access);
>    my_error(ER_SPECIFIC_ACCESS_DENIED_ERROR, MYF(0), command);
>    return 1;
>  #else
>
>   
> ------------------------------------------------------------------------
>
>
>   

Thread
bzr commit into mysql-6.0-rpl branch (zhenxing.he:2846) Bug#34227He Zhenxing12 May
  • Re: bzr commit into mysql-6.0-rpl branch (zhenxing.he:2846) Bug#34227Alfranio Correia13 May