Hello community,

here is the log from the commit of package unixODBC for openSUSE:Factory
checked in at Mon Sep 19 21:27:10 CEST 2011.



--------
--- unixODBC/unixODBC.changes   2011-06-13 11:20:12.000000000 +0200
+++ /mounts/work_src_done/STABLE/unixODBC/unixODBC.changes      2011-06-20 
17:08:43.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Jun 20 17:03:39 CEST 2011 - [email protected]
+
+- fixed mutex locking (bnc#637115)
+  - patch by Petr Vandrovec
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


New:
----
  unixODBC-2.2.12-locking_fix.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ unixODBC.spec ++++++
--- /var/tmp/diff_new_pack.MvEVH1/_old  2011-09-19 21:27:06.000000000 +0200
+++ /var/tmp/diff_new_pack.MvEVH1/_new  2011-09-19 21:27:06.000000000 +0200
@@ -50,6 +50,7 @@
 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 @@
 %patch12
 %patch13
 %patch14 -p1
+%patch15 -p1
 install -m 644 %{S:1} .
 
 %build

++++++ unixODBC-2.2.12-locking_fix.patch ++++++
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 );
         }
 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to