A fix and a test case for Bug#16144 "mysql_stmt_attr_get type error":

use the right type in mysql_stmt_attr_get
This commit is contained in:
konstantin@mysql.com 2006-01-17 23:19:43 +03:00
parent 70bb06685b
commit 19fd36e254
2 changed files with 21 additions and 1 deletions

View File

@ -2733,7 +2733,7 @@ my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt,
{
switch (attr_type) {
case STMT_ATTR_UPDATE_MAX_LENGTH:
*(unsigned long *) value= stmt->update_max_length;
*(my_bool*) value= stmt->update_max_length;
break;
default:
return TRUE;

View File

@ -11753,6 +11753,25 @@ static void test_bug12925()
}
/* Bug #16144: mysql_stmt_attr_get type error */
static void test_bug16144()
{
const my_bool flag_orig= (my_bool) 0xde;
my_bool flag= flag_orig;
MYSQL_STMT *stmt;
myheader("test_bug16144");
/* Check that attr_get returns correct data on little and big endian CPUs */
stmt= mysql_stmt_init(mysql);
mysql_stmt_attr_set(stmt, STMT_ATTR_UPDATE_MAX_LENGTH, (const void*) &flag);
mysql_stmt_attr_get(stmt, STMT_ATTR_UPDATE_MAX_LENGTH, (void*) &flag);
DIE_UNLESS(flag == flag_orig);
mysql_stmt_close(stmt);
}
/*
Read and parse arguments and MySQL options from my.cnf
*/
@ -11974,6 +11993,7 @@ static struct my_tests_st my_tests[]= {
{ "test_bug12001", test_bug12001 },
{ "test_bug11718", test_bug11718 },
{ "test_bug12925", test_bug12925 },
{ "test_bug16144", test_bug16144 },
{ 0, 0 }
};