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:
commit
abe2039d6f
273
unixODBC-2.2.12-locking_fix.patch
Normal file
273
unixODBC-2.2.12-locking_fix.patch
Normal 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 );
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -50,6 +50,7 @@ Patch11: %{name}-%{version}-flex.patch
|
||||
Patch12: %{name}-%{version}-sqp.patch
|
||||
Patch13: %{name}-%{version}-uninitialized.patch
|
||||
Patch14: unixODBC-2.2.12-CVE-2011-1145.patch
|
||||
Patch15: unixODBC-2.2.12-locking_fix.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%package devel
|
||||
@ -99,6 +100,7 @@ Authors:
|
||||
%patch12
|
||||
%patch13
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
install -m 644 %{S:1} .
|
||||
|
||||
%build
|
||||
|
Loading…
Reference in New Issue
Block a user