You've already forked mariadb-connector-c
mirror of
https://github.com/mariadb-corporation/mariadb-connector-c.git
synced 2025-08-08 14:02:17 +03:00
Fix for CONC-627:
Don't substitute parameters in server error messages in prepeated statement error handler function.
This commit is contained in:
@@ -106,6 +106,15 @@ void stmt_set_error(MYSQL_STMT *stmt,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Fix for CONC-627: If this is a server error message, we don't
|
||||||
|
need to substitute and possible variadic arguments will be
|
||||||
|
ignored */
|
||||||
|
if (!IS_MYSQL_ERROR(error_nr) && !IS_MARIADB_ERROR(error_nr))
|
||||||
|
{
|
||||||
|
strncpy(stmt->last_error, format, MYSQL_ERRMSG_SIZE - 1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
vsnprintf(stmt->last_error, MYSQL_ERRMSG_SIZE - 1,
|
vsnprintf(stmt->last_error, MYSQL_ERRMSG_SIZE - 1,
|
||||||
format ? format : errmsg, ap);
|
format ? format : errmsg, ap);
|
||||||
|
@@ -5487,7 +5487,28 @@ static int test_mdev19838(MYSQL *mysql)
|
|||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int test_conc627(MYSQL *mysql)
|
||||||
|
{
|
||||||
|
MYSQL_STMT *stmt= mysql_stmt_init(mysql);
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
rc= mysql_stmt_prepare(stmt, SL("show grants for mysqltest_8"));
|
||||||
|
check_stmt_rc(rc, stmt);
|
||||||
|
|
||||||
|
rc= mysql_stmt_execute(stmt);
|
||||||
|
check_stmt_rc(rc, stmt);
|
||||||
|
|
||||||
|
mysql_stmt_store_result(stmt);
|
||||||
|
FAIL_IF(!mysql_stmt_errno(stmt), "Expected error");
|
||||||
|
FAIL_IF(strcmp(mysql_error(mysql), mysql_stmt_error(stmt)), "Error messages differ");
|
||||||
|
|
||||||
|
mysql_stmt_close(stmt);
|
||||||
|
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
|
||||||
struct my_tests_st my_tests[] = {
|
struct my_tests_st my_tests[] = {
|
||||||
|
{"test_conc627", test_conc627, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||||
{"test_mdev19838", test_mdev19838, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
{"test_mdev19838", test_mdev19838, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||||
{"test_conc566", test_conc566, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
{"test_conc566", test_conc566, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||||
{"test_conc512", test_conc512, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
{"test_conc512", test_conc512, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
|
||||||
|
Reference in New Issue
Block a user