Commit 22bc685d authored by unknown's avatar unknown
Browse files

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

use the right type in mysql_stmt_attr_get


libmysql/libmysql.c:
  Fix Bug#16144 "mysql_stmt_attr_get type error"
tests/mysql_client_test.c:
  A test case for Bug#16144
parent 16d16b95
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
+20 −0
Original line number Diff line number Diff line
@@ -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 }
};