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
|
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
|
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
|
||||||
|
Loading…
Reference in New Issue
Block a user