Accepting request 83030 from server:database

OBS-URL: https://build.opensuse.org/request/show/83030
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/unixODBC?expand=0&rev=14
This commit is contained in:
Lars Vogdt 2011-09-19 19:27:07 +00:00 committed by Git OBS Bridge
commit abe2039d6f
3 changed files with 281 additions and 0 deletions

View File

@ -0,0 +1,273 @@
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLAllocHandle.c unixODBC-2.2.12/DriverManager/SQLAllocHandle.c
--- unixODBC-2.2.12.orig/DriverManager/SQLAllocHandle.c 2010-09-03 13:22:09.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLAllocHandle.c 2010-09-03 13:26:23.000000000 -0700
@@ -1235,6 +1235,8 @@
if ( __validate_env( (DMHENV) input_handle ))
{
DMHENV environment = (DMHENV) input_handle;
+
+ thread_protect( SQL_HANDLE_ENV, environment );
__post_internal_error( &environment -> error,
ERROR_HY092, NULL,
environment -> requested_version );
@@ -1244,6 +1246,8 @@
else if ( __validate_dbc( (DMHDBC) input_handle ))
{
DMHDBC connection = (DMHDBC) input_handle;
+
+ thread_protect( SQL_HANDLE_DBC, connection );
__post_internal_error( &connection -> error,
ERROR_HY092, NULL,
connection -> environment -> requested_version );
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLBrowseConnect.c unixODBC-2.2.12/DriverManager/SQLBrowseConnect.c
--- unixODBC-2.2.12.orig/DriverManager/SQLBrowseConnect.c 2005-11-21 09:25:43.000000000 -0800
+++ unixODBC-2.2.12/DriverManager/SQLBrowseConnect.c 2010-09-03 13:26:23.000000000 -0700
@@ -259,7 +259,7 @@
ERROR_08002, NULL,
connection -> environment -> requested_version );
- return function_return( -1, connection, SQL_ERROR );
+ return function_return( IGNORE_THREAD, connection, SQL_ERROR );
}
thread_protect( SQL_HANDLE_DBC, connection );
@@ -578,7 +578,7 @@
if( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_DBC, connection, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, connection, ret, TRUE );
}
if ( !__connect_part_two( connection ))
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLBrowseConnectW.c unixODBC-2.2.12/DriverManager/SQLBrowseConnectW.c
--- unixODBC-2.2.12.orig/DriverManager/SQLBrowseConnectW.c 2005-09-27 08:44:06.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLBrowseConnectW.c 2010-09-03 13:26:23.000000000 -0700
@@ -595,7 +595,7 @@
if( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_DBC, connection, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, connection, ret, TRUE );
}
if ( !__connect_part_two( connection ))
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLColAttribute.c unixODBC-2.2.12/DriverManager/SQLColAttribute.c
--- unixODBC-2.2.12.orig/DriverManager/SQLColAttribute.c 2006-03-08 01:18:41.000000000 -0800
+++ unixODBC-2.2.12/DriverManager/SQLColAttribute.c 2010-09-03 13:30:30.000000000 -0700
@@ -314,7 +314,7 @@
__post_internal_error( &statement -> error,
ERROR_07009, NULL,
statement -> connection -> environment -> requested_version );
- return function_return( statement, SQL_ERROR );
+ return function_return( SQL_HANDLE_STMT, statement, SQL_ERROR );
}
*/
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLColAttributeW.c unixODBC-2.2.12/DriverManager/SQLColAttributeW.c
--- unixODBC-2.2.12.orig/DriverManager/SQLColAttributeW.c 2005-09-27 08:44:06.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLColAttributeW.c 2010-09-03 13:31:01.000000000 -0700
@@ -180,7 +180,7 @@
__post_internal_error( &statement -> error,
ERROR_07009, NULL,
statement -> connection -> environment -> requested_version );
- return function_return( statement, SQL_ERROR );
+ return function_return( SQL_HANDLE_STMT, statement, SQL_ERROR );
}
*/
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLColumns.c unixODBC-2.2.12/DriverManager/SQLColumns.c
--- unixODBC-2.2.12.orig/DriverManager/SQLColumns.c 2005-09-27 08:44:06.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLColumns.c 2010-09-03 13:26:23.000000000 -0700
@@ -371,7 +371,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_STMT, statement, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, statement, ret, TRUE );
}
SQLNUMRESULTCOLS( statement -> connection,
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLColumnsW.c unixODBC-2.2.12/DriverManager/SQLColumnsW.c
--- unixODBC-2.2.12.orig/DriverManager/SQLColumnsW.c 2005-09-27 08:44:06.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLColumnsW.c 2010-09-03 13:26:23.000000000 -0700
@@ -284,7 +284,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_STMT, statement, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, statement, ret, TRUE );
}
SQLNUMRESULTCOLS( statement -> connection,
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLDisconnect.c unixODBC-2.2.12/DriverManager/SQLDisconnect.c
--- unixODBC-2.2.12.orig/DriverManager/SQLDisconnect.c 2006-02-21 03:59:22.000000000 -0800
+++ unixODBC-2.2.12/DriverManager/SQLDisconnect.c 2010-09-03 13:26:23.000000000 -0700
@@ -321,7 +321,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_DBC, connection, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, connection, ret, TRUE );
}
/*
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLExecDirect.c unixODBC-2.2.12/DriverManager/SQLExecDirect.c
--- unixODBC-2.2.12.orig/DriverManager/SQLExecDirect.c 2006-04-11 03:22:56.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLExecDirect.c 2010-09-03 13:26:23.000000000 -0700
@@ -431,7 +431,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_STMT, statement, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, statement, ret, TRUE );
}
local_ret = SQLNUMRESULTCOLS( statement -> connection,
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLExecDirectW.c unixODBC-2.2.12/DriverManager/SQLExecDirectW.c
--- unixODBC-2.2.12.orig/DriverManager/SQLExecDirectW.c 2006-04-11 03:22:56.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLExecDirectW.c 2010-09-03 13:26:23.000000000 -0700
@@ -333,7 +333,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_STMT, statement, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, statement, ret, TRUE );
}
local_ret = SQLNUMRESULTCOLS( statement -> connection,
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLExecute.c unixODBC-2.2.12/DriverManager/SQLExecute.c
--- unixODBC-2.2.12.orig/DriverManager/SQLExecute.c 2005-09-27 08:44:06.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLExecute.c 2010-09-03 13:26:23.000000000 -0700
@@ -294,7 +294,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_STMT, statement, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, statement, ret, TRUE );
}
local_ret = SQLNUMRESULTCOLS( statement -> connection,
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLForeignKeys.c unixODBC-2.2.12/DriverManager/SQLForeignKeys.c
--- unixODBC-2.2.12.orig/DriverManager/SQLForeignKeys.c 2005-09-27 08:44:06.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLForeignKeys.c 2010-09-03 13:26:23.000000000 -0700
@@ -407,7 +407,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_STMT, statement, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, statement, ret, TRUE );
}
SQLNUMRESULTCOLS( statement -> connection,
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLForeignKeysW.c unixODBC-2.2.12/DriverManager/SQLForeignKeysW.c
--- unixODBC-2.2.12.orig/DriverManager/SQLForeignKeysW.c 2005-09-27 08:44:06.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLForeignKeysW.c 2010-09-03 13:26:23.000000000 -0700
@@ -315,7 +315,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_STMT, statement, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, statement, ret, TRUE );
}
SQLNUMRESULTCOLS( statement -> connection,
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLFreeHandle.c unixODBC-2.2.12/DriverManager/SQLFreeHandle.c
--- unixODBC-2.2.12.orig/DriverManager/SQLFreeHandle.c 2006-04-21 07:25:55.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLFreeHandle.c 2010-09-03 13:27:41.000000000 -0700
@@ -226,8 +226,6 @@
ERROR_HY010, NULL,
environment -> requested_version );
- thread_release( SQL_HANDLE_ENV, environment );
-
return function_return( SQL_HANDLE_ENV, environment, SQL_ERROR );
}
@@ -293,8 +291,6 @@
ERROR_HY010, NULL,
connection -> environment -> requested_version );
- thread_release( SQL_HANDLE_ENV, environment );
-
return function_return( SQL_HANDLE_ENV, environment, SQL_ERROR );
}
@@ -396,8 +392,6 @@
ERROR_HY010, NULL,
statement -> connection -> environment -> requested_version );
- thread_release( SQL_HANDLE_STMT, statement );
-
return function_return( SQL_HANDLE_STMT, statement, SQL_ERROR );
}
@@ -525,8 +519,6 @@
ERROR_IM001, NULL,
connection -> environment -> requested_version );
- thread_release( SQL_HANDLE_DESC, descriptor );
-
return function_return( SQL_HANDLE_DESC, descriptor, SQL_ERROR );
}
else
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLMoreResults.c unixODBC-2.2.12/DriverManager/SQLMoreResults.c
--- unixODBC-2.2.12.orig/DriverManager/SQLMoreResults.c 2006-03-08 01:18:41.000000000 -0800
+++ unixODBC-2.2.12/DriverManager/SQLMoreResults.c 2010-09-03 13:26:23.000000000 -0700
@@ -249,7 +249,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_STMT, statement, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, statement, ret, TRUE );
}
SQLNUMRESULTCOLS( statement -> connection,
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLParamData.c unixODBC-2.2.12/DriverManager/SQLParamData.c
--- unixODBC-2.2.12.orig/DriverManager/SQLParamData.c 2005-11-21 09:25:43.000000000 -0800
+++ unixODBC-2.2.12/DriverManager/SQLParamData.c 2010-09-03 13:26:23.000000000 -0700
@@ -261,7 +261,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_STMT, statement, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, statement, ret, TRUE );
}
local_ret = SQLNUMRESULTCOLS( statement -> connection,
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLPrimaryKeys.c unixODBC-2.2.12/DriverManager/SQLPrimaryKeys.c
--- unixODBC-2.2.12.orig/DriverManager/SQLPrimaryKeys.c 2005-09-27 08:44:06.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLPrimaryKeys.c 2010-09-03 13:26:23.000000000 -0700
@@ -364,7 +364,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_STMT, statement, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, statement, ret, TRUE );
}
SQLNUMRESULTCOLS( statement -> connection,
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLPrimaryKeysW.c unixODBC-2.2.12/DriverManager/SQLPrimaryKeysW.c
--- unixODBC-2.2.12.orig/DriverManager/SQLPrimaryKeysW.c 2005-09-27 08:44:06.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLPrimaryKeysW.c 2010-09-03 13:26:23.000000000 -0700
@@ -287,7 +287,7 @@
if ( ret == SQL_SUCCESS_WITH_INFO )
{
- function_return_ex( SQL_HANDLE_STMT, statement, ret, TRUE );
+ function_return_ex( IGNORE_THREAD, statement, ret, TRUE );
}
SQLNUMRESULTCOLS( statement -> connection,
diff -urN unixODBC-2.2.12.orig/DriverManager/SQLTransact.c unixODBC-2.2.12/DriverManager/SQLTransact.c
--- unixODBC-2.2.12.orig/DriverManager/SQLTransact.c 2006-05-31 10:35:34.000000000 -0700
+++ unixODBC-2.2.12/DriverManager/SQLTransact.c 2010-09-03 13:26:23.000000000 -0700
@@ -434,8 +434,6 @@
ERROR_HY012, NULL,
environment -> requested_version );
- thread_release( SQL_HANDLE_ENV, environment );
-
return function_return( SQL_HANDLE_ENV, environment, SQL_ERROR );
}

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Mon Jun 20 17:03:39 CEST 2011 - mhrusecky@suse.cz
- fixed mutex locking (bnc#637115)
- patch by Petr Vandrovec
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Jun 13 11:17:49 CEST 2011 - mhrusecky@suse.cz Mon Jun 13 11:17:49 CEST 2011 - mhrusecky@suse.cz

View File

@ -50,6 +50,7 @@ Patch11: %{name}-%{version}-flex.patch
Patch12: %{name}-%{version}-sqp.patch Patch12: %{name}-%{version}-sqp.patch
Patch13: %{name}-%{version}-uninitialized.patch Patch13: %{name}-%{version}-uninitialized.patch
Patch14: unixODBC-2.2.12-CVE-2011-1145.patch Patch14: unixODBC-2.2.12-CVE-2011-1145.patch
Patch15: unixODBC-2.2.12-locking_fix.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%package devel %package devel
@ -99,6 +100,7 @@ Authors:
%patch12 %patch12
%patch13 %patch13
%patch14 -p1 %patch14 -p1
%patch15 -p1
install -m 644 %{S:1} . install -m 644 %{S:1} .
%build %build