diff options
author | unknown <malff/marcsql@weblab.(none)> | 2007-06-15 15:38:25 -0600 |
---|---|---|
committer | unknown <malff/marcsql@weblab.(none)> | 2007-06-15 15:38:25 -0600 |
commit | b72380fca55dbb8a7fb14f1da9d2a7d95812d410 (patch) | |
tree | 552575f0c798a63e3571a647fd1b528a6389ee90 /tests | |
parent | a43723673faedfefc73d35c64bf895c9f3adec2e (diff) | |
download | mariadb-git-b72380fca55dbb8a7fb14f1da9d2a7d95812d410.tar.gz |
Manual merge
Diffstat (limited to 'tests')
-rw-r--r-- | tests/mysql_client_test.c | 58 |
1 files changed, 56 insertions, 2 deletions
diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 3f0cb1bf4fe..0fff1bb71b5 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -16218,6 +16218,59 @@ static void test_bug28934() /* + Bug#27592 (stack overrun when storing datetime value using prepared statements) +*/ + +static void test_bug27592() +{ + const int NUM_ITERATIONS= 40; + int i; + int rc; + MYSQL_STMT *stmt= NULL; + MYSQL_BIND bind[1]; + MYSQL_TIME time_val; + + DBUG_ENTER("test_bug27592"); + myheader("test_bug27592"); + + mysql_query(mysql, "DROP TABLE IF EXISTS t1"); + mysql_query(mysql, "CREATE TABLE t1(c2 DATETIME)"); + + stmt= mysql_simple_prepare(mysql, "INSERT INTO t1 VALUES (?)"); + DIE_UNLESS(stmt); + + memset(bind, 0, sizeof(bind)); + + bind[0].buffer_type= MYSQL_TYPE_DATETIME; + bind[0].buffer= (char *) &time_val; + bind[0].length= NULL; + + for (i= 0; i < NUM_ITERATIONS; i++) + { + time_val.year= 2007; + time_val.month= 6; + time_val.day= 7; + time_val.hour= 18; + time_val.minute= 41; + time_val.second= 3; + + time_val.second_part=0; + time_val.neg=0; + + rc= mysql_stmt_bind_param(stmt, bind); + check_execute(stmt, rc); + + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + } + + mysql_stmt_close(stmt); + + DBUG_VOID_RETURN; +} + + +/* Read and parse arguments and MySQL options from my.cnf */ @@ -16498,15 +16551,16 @@ static struct my_tests_st my_tests[]= { { "test_bug15518", test_bug15518 }, { "test_bug23383", test_bug23383 }, { "test_bug21635", test_bug21635 }, - { "test_bug28505", test_bug28505 }, { "test_status", test_status }, { "test_bug24179", test_bug24179 }, { "test_ps_query_cache", test_ps_query_cache }, #ifdef fix_bug_in_pb_first { "test_bug28075", test_bug28075 }, #endif - { "test_bug28934", test_bug28934 }, { "test_bug27876", test_bug27876 }, + { "test_bug28505", test_bug28505 }, + { "test_bug28934", test_bug28934 }, + { "test_bug27592", test_bug27592 }, { 0, 0 } }; |