Commit cfad792e authored by unknown's avatar unknown

Clean up fix for Bug #7989 by avoiding extra memory copy, and adding some

more information to the error message.


sql/sql_acl.cc:
  Change strmov() call to strnmov(), and don't do redundant copy.
  Add to warning message that privilege can't be removed with REVOKE.
parent 2d2d4df7
Branches unavailable
Tags unavailable
No related merge requests found
......@@ -202,18 +202,17 @@ my_bool acl_init(THD *org_thd, bool dont_read_acl_tables)
{
/*
We make a temporary copy of the database, force it to lower case,
and then copy it back over the original name. We can't just update
the host.db pointer, because tmp_name is allocated on the stack.
and then check it against the original name.
*/
(void)strmov(tmp_name, host.db);
my_casedn_str(files_charset_info, tmp_name);
(void)strnmov(tmp_name, host.db, sizeof(tmp_name));
my_casedn_str(files_charset_info, host.db);
if (strcmp(host.db, tmp_name) != 0)
{
sql_print_warning("'host' entry '%s|%s' had database in mixed "
"case that has been forced to lowercase because "
"lower_case_table_names is set.",
"lower_case_table_names is set. It will not be "
"possible to remove this privilege using REVOKE.",
host.host.hostname, host.db);
(void)strmov(host.db, tmp_name);
}
}
host.access= get_access(table,2);
......@@ -403,18 +402,17 @@ my_bool acl_init(THD *org_thd, bool dont_read_acl_tables)
{
/*
We make a temporary copy of the database, force it to lower case,
and then copy it back over the original name. We can't just update
the db.db pointer, because tmp_name is allocated on the stack.
and then check it against the original name.
*/
(void)strmov(tmp_name, db.db);
my_casedn_str(files_charset_info, tmp_name);
(void)strnmov(tmp_name, db.db, sizeof(tmp_name));
my_casedn_str(files_charset_info, db.db);
if (strcmp(db.db, tmp_name) != 0)
{
sql_print_warning("'db' entry '%s %s@%s' had database in mixed "
"case that has been forced to lowercase because "
"lower_case_table_names is set.",
"lower_case_table_names is set. It will not be "
"possible to remove this privilege using REVOKE.",
db.db, db.user, db.host.hostname, db.host.hostname);
(void)strmov(db.db, tmp_name);
}
}
db.sort=get_sort(3,db.host.hostname,db.db,db.user);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment