diff options
author | Gleb Shchepa <gshchepa@mysql.com> | 2008-06-27 18:22:23 +0500 |
---|---|---|
committer | Gleb Shchepa <gshchepa@mysql.com> | 2008-06-27 18:22:23 +0500 |
commit | dc0e959a302d55825b6204c1cce63d7d73fd5b93 (patch) | |
tree | 8ac8fc9ad8267766f73449691b92aea676f0f6f6 /mysql-test/t/varbinary.test | |
parent | 98cf483064d1f176dc0d8219ac6563049de708b0 (diff) | |
download | mariadb-git-dc0e959a302d55825b6204c1cce63d7d73fd5b93.tar.gz |
buckport to 5.1.26 from 6.0
Bug#35658 (An empty binary value leads to mysqld crash)
Before this fix, the following token
b''
caused the parser to crash when reading the binary value from the empty string.
The crash was caused by:
ptr+= max_length - 1;
because max_length is unsigned and was 0, causing an overflow.
With this fix, an empty binary literal b'' is parsed as a binary value 0,
in Item_bin_string.
mysql-test/r/varbinary.result:
Bug#35658 (An empty binary value leads to mysqld crash)
mysql-test/t/varbinary.test:
Bug#35658 (An empty binary value leads to mysqld crash)
sql/item.cc:
Bug#35658 (An empty binary value leads to mysqld crash)
Diffstat (limited to 'mysql-test/t/varbinary.test')
-rw-r--r-- | mysql-test/t/varbinary.test | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/mysql-test/t/varbinary.test b/mysql-test/t/varbinary.test index 9ccbac7cdda..1db561183a7 100644 --- a/mysql-test/t/varbinary.test +++ b/mysql-test/t/varbinary.test @@ -104,3 +104,31 @@ show create table table_28127_b; drop table table_28127_a; drop table table_28127_b; +# +# Bug#35658 (An empty binary value leads to mysqld crash) +# + +select 0b01000001; + +select 0x41; + +select b'01000001'; + +select x'41', 0+x'41'; + +select N'abc', length(N'abc'); + +select N'', length(N''); + +select '', length(''); + +select b'', 0+b''; + +select x'', 0+x''; + +--error ER_BAD_FIELD_ERROR +select 0x; + +--error ER_BAD_FIELD_ERROR +select 0b; + |