mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-16932: ASAN heap-use-after-free in my_charlen_utf8 / my_well_formed_char_length_utf8 on 2nd execution of SP with ALTER trying to add bad CHECK
Make automatic name generation during execution (not prepare). Check result of memory allocation operation.
This commit is contained in:
@ -119,3 +119,40 @@ CREATE TABLE test.t (f int foo=bar check(f>0));
|
||||
SHOW CREATE TABLE t;
|
||||
DROP table test.t;
|
||||
SET @@SQL_MODE=@OLD_SQL_MODE;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-16932 - ASAN heap-use-after-free in my_charlen_utf8 /
|
||||
--echo # my_well_formed_char_length_utf8 on 2nd execution of SP with
|
||||
--echo # ALTER trying to add bad CHECK
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a INT);
|
||||
CREATE PROCEDURE sp() ALTER TABLE t1 ADD CONSTRAINT CHECK (b > 0);
|
||||
--error ER_BAD_FIELD_ERROR
|
||||
CALL sp;
|
||||
--error ER_BAD_FIELD_ERROR
|
||||
CALL sp;
|
||||
--error ER_BAD_FIELD_ERROR
|
||||
CALL sp;
|
||||
show create table t1;
|
||||
alter table t1 add column b int;
|
||||
CALL sp;
|
||||
show create table t1;
|
||||
CALL sp;
|
||||
show create table t1;
|
||||
# Cleanup
|
||||
DROP PROCEDURE sp;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a INT);
|
||||
CREATE PROCEDURE sp() ALTER TABLE t1 ADD CONSTRAINT CHECK (b > 0);
|
||||
--error ER_BAD_FIELD_ERROR
|
||||
CALL sp;
|
||||
alter table t1 add column b int, add constraint check (b < 10);
|
||||
CALL sp;
|
||||
show create table t1;
|
||||
# Cleanup
|
||||
DROP PROCEDURE sp;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo # End of 10.2 tests
|
||||
|
Reference in New Issue
Block a user