summaryrefslogtreecommitdiff
path: root/sql/sql_table.cc
diff options
context:
space:
mode:
authorAlexey Kopytov <Alexey.Kopytov@Sun.com>2010-05-09 02:03:35 +0400
committerAlexey Kopytov <Alexey.Kopytov@Sun.com>2010-05-09 02:03:35 +0400
commit5ef2bdea81a68a5440235bb5c841fff5dcc2b2c7 (patch)
treefaf6e2793eae5ff3a0ec48cebf47e8045db0a6ff /sql/sql_table.cc
parente94c1ab135e035dea4c2db9508d2d635b70bcf80 (diff)
parent721ec081901b661b9338a47b3144c6c41829165a (diff)
downloadmariadb-git-5ef2bdea81a68a5440235bb5c841fff5dcc2b2c7.tar.gz
Manual merge of mysql-5.1-bugteam to mysql-trunk-merge.
Conflicts: Text conflict in mysql-test/r/grant.result Text conflict in mysql-test/t/grant.test Text conflict in mysys/mf_loadpath.c Text conflict in sql/slave.cc Text conflict in sql/sql_priv.h
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r--sql/sql_table.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 03976e2784a..8058ee20868 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -469,7 +469,21 @@ uint tablename_to_filename(const char *from, char *to, uint to_length)
DBUG_PRINT("enter", ("from '%s'", from));
if ((length= check_n_cut_mysql50_prefix(from, to, to_length)))
+ {
+ /*
+ Check if the name supplied is a valid mysql 5.0 name and
+ make the name a zero length string if it's not.
+ Note that just returning zero length is not enough :
+ a lot of places don't check the return value and expect
+ a zero terminated string.
+ */
+ if (check_table_name(to, length, TRUE))
+ {
+ to[0]= 0;
+ length= 0;
+ }
DBUG_RETURN(length);
+ }
length= strconvert(system_charset_info, from,
&my_charset_filename, to, to_length, &errors);
if (check_if_legal_tablename(to) &&