summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorunknown <kroki/tomash@moonlight.intranet>2006-08-09 13:37:20 +0400
committerunknown <kroki/tomash@moonlight.intranet>2006-08-09 13:37:20 +0400
commite909b9bf8ca0f43b0bc351532b50fa074be2ea6f (patch)
tree21c67f22e21375044ef6217a225616bac076de72 /tests
parent97ce77d80c68a36ab20a6b9f4946ab414ed6ce2b (diff)
parentd55cc6b8d9e040bca09121fac43bc5c41446d53c (diff)
downloadmariadb-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.c46
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 }
};