From b0a8fde89732a11475144f0f2ab88acedcebdf86 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 28 Apr 2004 03:37:45 +0300 Subject: Fixed stack overrun with some INSERT ... SELECT ... GROUP BY queries (Bug #3265) Ensure that raid_chunks is not set to higher than 255 as this could cause problems with DROP DATABASE. (Bug #3182) mysql-test/r/raid.result: Test of raid_chunks > 255 mysql-test/t/raid.test: Test of raid_chunks > 255 sql/item.cc: Fixed wrong usage of str_value in Item::save_in_field This could caused a stack overrun with some very special INSERT ... SELECT ... GROUP BY queries where the GROUP BY value was an expression that generated a NULL value. (Bug #3265) The Item_copy_string::save_in_field() function is from 4.1 and helps optimized this case a bit sql/item.h: Fixed wrong usage of str_value in Item_copy_string::save_in_field sql/sql_insert.cc: More debug information sql/table.cc: Ensure that raid_chunks is not set to higher than 255 as this could cause problems with DROP DATABASE. Another problem with values > 255 is that in the .frm file we store the chunks value in one byte. (Bug #3182) --- mysql-test/t/raid.test | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'mysql-test/t/raid.test') diff --git a/mysql-test/t/raid.test b/mysql-test/t/raid.test index 43ad58ab368..52a15ec3040 100644 --- a/mysql-test/t/raid.test +++ b/mysql-test/t/raid.test @@ -11,6 +11,15 @@ create database test_raid; create table test_raid.r1 (i int) raid_type=1; create table test_raid.r2 (i int) raid_type=1 raid_chunks=32; drop database test_raid; + +# +# Bug #3182: Test using more than 257 raid chunks +# +create database test_raid; +create table test_raid.r2 (i int) raid_type=1 raid_chunks=257; +show create table test_raid.r2; +drop database test_raid; + DROP TABLE IF EXISTS t1,t2; CREATE TABLE t1 ( id int unsigned not null auto_increment primary key, -- cgit v1.2.1