diff options
author | unknown <kroki/tomash@moonlight.intranet> | 2006-08-09 13:37:20 +0400 |
---|---|---|
committer | unknown <kroki/tomash@moonlight.intranet> | 2006-08-09 13:37:20 +0400 |
commit | e909b9bf8ca0f43b0bc351532b50fa074be2ea6f (patch) | |
tree | 21c67f22e21375044ef6217a225616bac076de72 /tests | |
parent | 97ce77d80c68a36ab20a6b9f4946ab414ed6ce2b (diff) | |
parent | d55cc6b8d9e040bca09121fac43bc5c41446d53c (diff) | |
download | mariadb-git-e909b9bf8ca0f43b0bc351532b50fa074be2ea6f.tar.gz |
Merge moonlight.intranet:/home/tomash/src/mysql_ab/tmp_merge
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.1-merge
BitKeeper/deleted/.del-mysys.vcproj~40a49d09c4184822:
Auto merged
configure.in:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/warnings.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/mysqlbinlog.test:
Auto merged
mysql-test/t/udf.test:
Auto merged
mysql-test/t/warnings.test:
Auto merged
BitKeeper/deleted/.del-mysqld.vcproj~6aa7b3f9c3e28fcb:
Auto merged
sql/field.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_class.cc:
Auto merged
support-files/mysql.spec.sh:
Auto merged
mysql-test/r/sp.result:
Manual merge. Place 5.0 test before 5.1 test.
mysql-test/t/sp.test:
Manual merge. Place 5.0 test before 5.1 test.
mysys/my_bitmap.c:
Manual merge.
scripts/make_binary_distribution.sh:
Manual merge.
sql/Makefile.am:
Manual merge.
sql/slave.cc:
Manual merge.
sql/sql_class.h:
Manual merge.
sql/sql_parse.cc:
Manual merge.
sql/sql_select.cc:
Manual merge.
tests/mysql_client_test.c:
Manual merge.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/mysql_client_test.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index eb5465d4d35..924f9169f5a 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -15227,6 +15227,51 @@ static void test_bug20152() DIE_UNLESS(0==1); } } + + +/* + Bug#21206: memory corruption when too many cursors are opened at once + + Memory corruption happens when more than 1024 cursors are open + simultaneously. +*/ +static void test_bug21206() +{ + const size_t cursor_count= 1025; + + const char *create_table[]= + { + "DROP TABLE IF EXISTS t1", + "CREATE TABLE t1 (i INT)", + "INSERT INTO t1 VALUES (1), (2), (3)" + }; + const char *query= "SELECT * FROM t1"; + + Stmt_fetch *fetch_array= + (Stmt_fetch*) calloc(cursor_count, sizeof(Stmt_fetch)); + + Stmt_fetch *fetch; + + DBUG_ENTER("test_bug21206"); + myheader("test_bug21206"); + + fill_tables(create_table, sizeof(create_table) / sizeof(*create_table)); + + for (fetch= fetch_array; fetch < fetch_array + cursor_count; ++fetch) + { + /* Init will exit(1) in case of error */ + stmt_fetch_init(fetch, fetch - fetch_array, query); + } + + for (fetch= fetch_array; fetch < fetch_array + cursor_count; ++fetch) + stmt_fetch_close(fetch); + + free(fetch_array); + + DBUG_VOID_RETURN; +} + + /* Read and parse arguments and MySQL options from my.cnf */ @@ -15501,6 +15546,7 @@ static struct my_tests_st my_tests[]= { { "test_bug17667", test_bug17667 }, { "test_mysql_insert_id", test_mysql_insert_id }, { "test_bug19671", test_bug19671}, + { "test_bug21206", test_bug21206}, { 0, 0 } }; |