summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorunknown <malff/marcsql@weblab.(none)>2007-06-15 15:38:25 -0600
committerunknown <malff/marcsql@weblab.(none)>2007-06-15 15:38:25 -0600
commitb72380fca55dbb8a7fb14f1da9d2a7d95812d410 (patch)
tree552575f0c798a63e3571a647fd1b528a6389ee90 /tests
parenta43723673faedfefc73d35c64bf895c9f3adec2e (diff)
downloadmariadb-git-b72380fca55dbb8a7fb14f1da9d2a7d95812d410.tar.gz
Manual merge
Diffstat (limited to 'tests')
-rw-r--r--tests/mysql_client_test.c58
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 }
};