diff options
author | unknown <pem@mysql.com> | 2006-01-11 15:11:05 +0100 |
---|---|---|
committer | unknown <pem@mysql.com> | 2006-01-11 15:11:05 +0100 |
commit | 1e968057523db1313438368812b99a38ba460542 (patch) | |
tree | 702391a280a23dfee13efd2028892e83aef26525 /sql/sql_yacc.yy | |
parent | 935ad7e8f376805f435d6e105d337efb54a31379 (diff) | |
download | mariadb-git-1e968057523db1313438368812b99a38ba460542.tar.gz |
Fixing BUG#15658: Server crashes after creating function as empty string
Empty strings (and names with trailing spaces) should not be allowed.
mysql-test/r/sp-error.result:
New testcase for BUG#15658
mysql-test/t/sp-error.test:
New testcase for BUG#15658
sql/share/errmsg.txt:
New error message for bad stored routine names.
sql/sp_head.cc:
Added function for checking SP names. (Mustn't be empty or contain trailing spaces.)
sql/sp_head.h:
Added function for checking SP names.
sql/sql_yacc.yy:
Check db and name for stored routines.
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 25e10362ece..281e3e2eb5b 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1288,11 +1288,26 @@ clear_privileges: sp_name: ident '.' ident { + if (!$1.str || check_db_name($1.str)) + { + my_error(ER_WRONG_DB_NAME, MYF(0), $1.str); + YYABORT; + } + if (sp_name_check($3)) + { + my_error(ER_SP_WRONG_NAME, MYF(0), $3.str); + YYABORT; + } $$= new sp_name($1, $3); $$->init_qname(YYTHD); } | ident { + if (sp_name_check($1)) + { + my_error(ER_SP_WRONG_NAME, MYF(0), $1.str); + YYABORT; + } $$= sp_name_current_db_new(YYTHD, $1); } ; |