diff options
author | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2008-10-02 16:57:52 +0500 |
---|---|---|
committer | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2008-10-02 16:57:52 +0500 |
commit | d51e2c0760f5dca2aff03aa16b77bf70e0b06dbc (patch) | |
tree | 080bb32fe11caa26d06b5fd11bdf84560d383d59 /sql/sql_yacc.yy | |
parent | 7e60f71001595df62b92a089869dd67fcc15a1ee (diff) | |
download | mariadb-git-d51e2c0760f5dca2aff03aa16b77bf70e0b06dbc.tar.gz |
Bug#35924 DEFINER should be stored 'quoted' in I_S
The '@' symbol can not be used in the host name according to rfc952.
The fix:
added function check_host_name(LEX_STRING *str)
which checks that all symbols in host name string are valid and
host name length is not more than max host name length
(just moved check_string_length() function from the parser into check_host_name()).
mysql-test/r/create.result:
test result
mysql-test/t/create.test:
test case
sql/mysql_priv.h:
added function check_host_name(LEX_STRING *str)
sql/sql_parse.cc:
added function check_host_name(LEX_STRING *str)
which checks that all symbols in host name string are valid and
host name length is not more than max host name length(HOSTNAME_LENGTH).
sql/sql_yacc.yy:
using newly added function check_host_name()
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index c04eca6bd3f..0eefe782354 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -9269,8 +9269,7 @@ user: if (check_string_length(&$$->user, ER(ER_USERNAME), USERNAME_LENGTH) || - check_string_length(&$$->host, - ER(ER_HOSTNAME), HOSTNAME_LENGTH)) + check_host_name(&$$->host)) MYSQL_YYABORT; } | CURRENT_USER optional_braces |