Loading libmysql/libmysql.c +17 −0 Original line number Diff line number Diff line Loading @@ -1809,6 +1809,18 @@ static my_bool my_realloc_str(NET *net, ulong length) } /* Clear possible error statee of struct NET */ static void net_clear_error(NET *net) { if (net->last_errno) { net->last_errno= 0; net->last_error[0]= '\0'; strmov(net->sqlstate, not_error_sqlstate); } } /* Set statement error code, sqlstate, and error message from given errcode and sqlstate. Loading Loading @@ -4869,6 +4881,11 @@ my_bool STDCALL mysql_stmt_close(MYSQL_STMT *stmt) if (mysql->unbuffered_fetch_owner == &stmt->unbuffered_fetch_cancelled) mysql->unbuffered_fetch_owner= 0; /* Clear NET error state: if the following commands come through successfully, connection will still be usable for other commands. */ net_clear_error(&mysql->net); if (mysql->status != MYSQL_STATUS_READY) { /* Loading tests/mysql_client_test.c +21 −1 Original line number Diff line number Diff line Loading @@ -12513,7 +12513,7 @@ static void test_bug6761(void) } /* Bug#8330 - Bug #8330 mysql_stmt_execute crashes (libmysql) */ /* Bug#8330 - mysql_stmt_execute crashes (libmysql) */ static void test_bug8330() { Loading Loading @@ -12564,6 +12564,26 @@ static void test_bug8330() } /* Bug#7990 - mysql_stmt_close doesn't reset mysql->net.last_error */ static void test_bug7990() { MYSQL_STMT *stmt; int rc; myheader("test_bug7990"); stmt= mysql_stmt_init(mysql); rc= mysql_stmt_prepare(stmt, "foo", 3); /* XXX: the fact that we store errno both in STMT and in MYSQL is not documented and is subject to change in 5.0 */ DIE_UNLESS(rc && mysql_stmt_errno(stmt) && mysql_errno(mysql)); mysql_stmt_close(stmt); DIE_UNLESS(!mysql_errno(mysql)); } /* Read and parse arguments and MySQL options from my.cnf */ Loading Loading
libmysql/libmysql.c +17 −0 Original line number Diff line number Diff line Loading @@ -1809,6 +1809,18 @@ static my_bool my_realloc_str(NET *net, ulong length) } /* Clear possible error statee of struct NET */ static void net_clear_error(NET *net) { if (net->last_errno) { net->last_errno= 0; net->last_error[0]= '\0'; strmov(net->sqlstate, not_error_sqlstate); } } /* Set statement error code, sqlstate, and error message from given errcode and sqlstate. Loading Loading @@ -4869,6 +4881,11 @@ my_bool STDCALL mysql_stmt_close(MYSQL_STMT *stmt) if (mysql->unbuffered_fetch_owner == &stmt->unbuffered_fetch_cancelled) mysql->unbuffered_fetch_owner= 0; /* Clear NET error state: if the following commands come through successfully, connection will still be usable for other commands. */ net_clear_error(&mysql->net); if (mysql->status != MYSQL_STATUS_READY) { /* Loading
tests/mysql_client_test.c +21 −1 Original line number Diff line number Diff line Loading @@ -12513,7 +12513,7 @@ static void test_bug6761(void) } /* Bug#8330 - Bug #8330 mysql_stmt_execute crashes (libmysql) */ /* Bug#8330 - mysql_stmt_execute crashes (libmysql) */ static void test_bug8330() { Loading Loading @@ -12564,6 +12564,26 @@ static void test_bug8330() } /* Bug#7990 - mysql_stmt_close doesn't reset mysql->net.last_error */ static void test_bug7990() { MYSQL_STMT *stmt; int rc; myheader("test_bug7990"); stmt= mysql_stmt_init(mysql); rc= mysql_stmt_prepare(stmt, "foo", 3); /* XXX: the fact that we store errno both in STMT and in MYSQL is not documented and is subject to change in 5.0 */ DIE_UNLESS(rc && mysql_stmt_errno(stmt) && mysql_errno(mysql)); mysql_stmt_close(stmt); DIE_UNLESS(!mysql_errno(mysql)); } /* Read and parse arguments and MySQL options from my.cnf */ Loading