summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
authorSergey Glukhov <Sergey.Glukhov@sun.com>2008-10-02 16:57:52 +0500
committerSergey Glukhov <Sergey.Glukhov@sun.com>2008-10-02 16:57:52 +0500
commitd51e2c0760f5dca2aff03aa16b77bf70e0b06dbc (patch)
tree080bb32fe11caa26d06b5fd11bdf84560d383d59 /sql/sql_yacc.yy
parent7e60f71001595df62b92a089869dd67fcc15a1ee (diff)
downloadmariadb-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.yy3
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