MDEV-28588 SIGSEGV in __memmove_avx_unaligned_erms, strmake_root

This commit is contained in:
Alexander Barkov 2022-05-17 15:34:58 +04:00
parent 3e564d468d
commit c9b5a05341
3 changed files with 42 additions and 1 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;
}