summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2020-05-13 14:25:06 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2020-05-13 14:25:06 +0300
commitb30a013142179a4bf72ce1779bea84596ba28685 (patch)
treec4509170481b121bfdd7559fc15df42be76af146 /tests
parent0186b0a07760b734af61a9e45ebdb5a077d1872d (diff)
parent38f6c47f8a0a9bc313e4875c4676985249771c76 (diff)
downloadmariadb-git-b30a013142179a4bf72ce1779bea84596ba28685.tar.gz
Merge 10.4 into 10.5
Diffstat (limited to 'tests')
-rw-r--r--tests/mysql_client_test.c48
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 }
};