=== modified file 'ChangeLog' --- ChangeLog 2013-08-02 10:27:33 +0000 +++ ChangeLog 2013-08-13 11:11:43 +0000 @@ -6,6 +6,7 @@ specifying mysqlclient library (libmysql.*, mysqlclient.*, libmysqlclient_r.*, libmysqlclient.*) to be used. Mysql CPP linkage for mysql version >= 5.6.4 (wl#6738) + * Added a new test module for crash bugs (my_crash.c) Bugs fixed: * With utf8 byte string for mysql server version < 5.5.3, insert fails @@ -24,6 +25,8 @@ (Bug# 17016839/69545) * Need to add a lock to access connections member in ENV structure (Bug# 17240611/69864) + * Visual Studio 2010 crashes when reading rows from any table in Server + Explorer (Bug# 17304031/69950) ---- === modified file 'driver/handle.c' --- driver/handle.c 2013-08-05 06:13:11 +0000 +++ driver/handle.c 2013-08-13 10:51:50 +0000 @@ -561,7 +561,7 @@ } else { - if(stmt->result->field_alloc.pre_alloc) + if(stmt->result && stmt->result->field_alloc.pre_alloc) { free_root(&stmt->result->field_alloc, MYF(0)); } === modified file 'test/CMakeLists.txt' --- test/CMakeLists.txt 2013-07-19 21:26:38 +0000 +++ test/CMakeLists.txt 2013-08-13 08:13:18 +0000 @@ -38,7 +38,7 @@ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${ODBC_LINK_FLAGS}") ENDIF(NOT WIN32) -FOREACH(T my_basics my_blob my_bulk my_catalog1 my_catalog2 my_curext my_cursor +FOREACH(T my_basics my_blob my_bulk my_catalog1 my_catalog2 my_crash my_curext my_cursor my_datetime my_desc my_dyn_cursor my_error my_info my_keys my_param my_prepare my_relative my_result1 my_result2 my_scroll my_setup my_tran my_types my_unicode my_unixodbc my_use_result my_bug13766) === added file 'test/my_crash.c' --- test/my_crash.c 1970-01-01 00:00:00 +0000 +++ test/my_crash.c 2013-08-13 08:49:27 +0000 @@ -0,0 +1,62 @@ +/* + Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + + The MySQL Connector/ODBC is licensed under the terms of the GPLv2 + , like most + MySQL Connectors. There are special exceptions to the terms and + conditions of the GPLv2 as it is applied to this software, see the + FLOSS License Exception + . + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "odbctap.h" +#include "../VersionInfo.h" + +/* + Bug #69950 Visual Studio 2010 crashes when reading rows from any + table in Server Explorer +*/ +DECLARE_TEST(t_bug69950) +{ + SQLRETURN rc= OK; + SQLLEN rows= 0; + SQLSMALLINT cols= 0; + + /* Make sure such table does not exist! */ + ok_sql(hstmt, "DROP TABLE IF EXISTS t_bug69950"); + + /* Create an EMPTY fake result set */ + ok_stmt(hstmt, SQLTables(hstmt, mydb, SQL_NTS, NULL, 0, + "t_bug69950", SQL_NTS, "TABLE", SQL_NTS)); + + expect_stmt(hstmt, SQLFetch(hstmt), SQL_NO_DATA_FOUND); + expect_stmt(hstmt, SQLMoreResults(hstmt), SQL_NO_DATA_FOUND); + + /* CRASH! */ + ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE)); + + return OK; +} + +BEGIN_TESTS + ADD_TEST(t_bug69950) +END_TESTS + +myoption &= ~(1 << 30); +RUN_TESTS_ONCE +myoption |= (1 << 30); +testname_suffix= "_no_i_s"; +RUN_TESTS