diff options
author | Alexander Barkov <bar@mariadb.com> | 2022-05-17 15:34:58 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2022-05-17 17:05:30 +0400 |
commit | c9b5a05341d7342db5f369493ea200b5fb9db243 (patch) | |
tree | 9c9109ef4eef7ea3a01d81f738e24f03740bdd74 | |
parent | 3e564d468d69b52e8e4a48af6980d40005205864 (diff) | |
download | mariadb-git-c9b5a05341d7342db5f369493ea200b5fb9db243.tar.gz |
MDEV-28588 SIGSEGV in __memmove_avx_unaligned_erms, strmake_root
-rw-r--r-- | mysql-test/suite/compat/oracle/r/sp.result | 18 | ||||
-rw-r--r-- | mysql-test/suite/compat/oracle/t/sp.test | 23 | ||||
-rw-r--r-- | sql/sql_lex.cc | 2 |
3 files changed, 42 insertions, 1 deletions
diff --git a/mysql-test/suite/compat/oracle/r/sp.result b/mysql-test/suite/compat/oracle/r/sp.result index 2d4244110f9..5756db4fc5b 100644 --- a/mysql-test/suite/compat/oracle/r/sp.result +++ b/mysql-test/suite/compat/oracle/r/sp.result @@ -2560,3 +2560,21 @@ idx idx 1 DROP PROCEDURE p1; +# +# MDEV-28588 SIGSEGV in __memmove_avx_unaligned_erms, strmake_root +# +SET sql_mode=ORACLE; +BEGIN END; +SET sql_mode=ORACLE; +CREATE EVENT ev ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO BEGIN END; +Warnings: +Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it. +SELECT EVENT_DEFINITION FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='test' AND EVENT_NAME='ev'; +EVENT_DEFINITION BEGIN END +DROP EVENT ev; +CREATE TABLE t1 (a INT); +CREATE TRIGGER tr AFTER INSERT ON t1 FOR EACH ROW BEGIN END; +SELECT ACTION_STATEMENT FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA='test' AND TRIGGER_NAME='tr'; +ACTION_STATEMENT BEGIN END +DROP TRIGGER tr; +DROP TABLE t1; diff --git a/mysql-test/suite/compat/oracle/t/sp.test b/mysql-test/suite/compat/oracle/t/sp.test index 31657aa4aef..ca99739533f 100644 --- a/mysql-test/suite/compat/oracle/t/sp.test +++ b/mysql-test/suite/compat/oracle/t/sp.test @@ -2397,3 +2397,26 @@ $$ DELIMITER ;$$ CALL p1(); DROP PROCEDURE p1; + + +--echo # +--echo # MDEV-28588 SIGSEGV in __memmove_avx_unaligned_erms, strmake_root +--echo # + +SET sql_mode=ORACLE; +BEGIN END; + +SET sql_mode=ORACLE; +CREATE EVENT ev ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO BEGIN END; +--vertical_results +SELECT EVENT_DEFINITION FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA='test' AND EVENT_NAME='ev'; +--horizontal_results +DROP EVENT ev; + +CREATE TABLE t1 (a INT); +CREATE TRIGGER tr AFTER INSERT ON t1 FOR EACH ROW BEGIN END; +--vertical_results +SELECT ACTION_STATEMENT FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA='test' AND TRIGGER_NAME='tr'; +--horizontal_results +DROP TRIGGER tr; +DROP TABLE t1; diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index f3951628513..5a00518b806 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -6674,7 +6674,7 @@ bool LEX::maybe_start_compound_statement(THD *thd) if (!make_sp_head(thd, NULL, &sp_handler_procedure)) return true; sphead->set_suid(SP_IS_NOT_SUID); - sphead->set_body_start(thd, thd->m_parser_state->m_lip.get_cpp_ptr()); + sphead->set_body_start(thd, thd->m_parser_state->m_lip.get_cpp_tok_start()); } return false; } |