diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-05-13 14:25:06 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-05-13 14:25:06 +0300 |
commit | b30a013142179a4bf72ce1779bea84596ba28685 (patch) | |
tree | c4509170481b121bfdd7559fc15df42be76af146 /tests | |
parent | 0186b0a07760b734af61a9e45ebdb5a077d1872d (diff) | |
parent | 38f6c47f8a0a9bc313e4875c4676985249771c76 (diff) | |
download | mariadb-git-b30a013142179a4bf72ce1779bea84596ba28685.tar.gz |
Merge 10.4 into 10.5
Diffstat (limited to 'tests')
-rw-r--r-- | tests/mysql_client_test.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index ce3deb7882d..22c3955d524 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -20886,6 +20886,53 @@ static void test_explain_meta() mct_close_log(); } + +/* + MDEV-20261 NULL passed to String::eq, SEGV, server crash, regression in 10.4 +*/ +static void test_mdev20261() +{ + int rc; + MYSQL_STMT *stmt; + MYSQL_BIND param[1]; + const char *query= "SELECT * FROM t1 WHERE f = ? OR f = 'foo'"; + char val[]= ""; + my_bool is_null= TRUE; + + myheader("test_mdev20261"); + + rc= mysql_query(mysql, "CREATE OR REPLACE TABLE t1 (f varchar(64)) ENGINE=MyISAM"); + myquery(rc); + + stmt= mysql_stmt_init(mysql); + check_stmt(stmt); + rc= mysql_stmt_prepare(stmt, query, strlen(query)); + check_execute(stmt, rc); + + verify_param_count(stmt, 1); + + bzero((char*) param, sizeof(param)); + + param[0].buffer= &val; + param[0].buffer_type= MYSQL_TYPE_STRING; + param[0].is_null= &is_null; + + rc= mysql_stmt_bind_param(stmt, param); + check_execute(stmt, rc); + + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + + rc= mysql_stmt_store_result(stmt); + check_execute(stmt, rc); + + mysql_stmt_close(stmt); + + rc= mysql_query(mysql, "DROP TABLE t1"); + myquery(rc); +} + + static struct my_tests_st my_tests[]= { { "disable_query_logs", disable_query_logs }, { "test_view_sp_list_fields", test_view_sp_list_fields }, @@ -21179,6 +21226,7 @@ static struct my_tests_st my_tests[]= { #endif { "test_explain_meta", test_explain_meta }, { "test_mdev18408", test_mdev18408 }, + { "test_mdev20261", test_mdev20261 }, { 0, 0 } }; |