rpms/voms/EL-4 voms-thread.patch, NONE, 1.1 import.log, 1.5, 1.6 voms.spec, 1.5, 1.6

Mattias Ellert ellert at fedoraproject.org
Wed Mar 31 17:16:39 UTC 2010


Author: ellert

Update of /cvs/pkgs/rpms/voms/EL-4
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv6037/EL-4

Modified Files:
	import.log voms.spec 
Added Files:
	voms-thread.patch 
Log Message:
* Sun Mar 28 2010 Mattias Ellert <mattias.ellert at fysast.uu.se> - 1.9.16.1-2
- Add mutex lock for accessing private data


voms-thread.patch:
 api_util.cc |    3 +++
 voms_api.cc |    8 +++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

--- NEW FILE voms-thread.patch ---
diff -ur voms-1.9.16.1.orig/src/api/ccapi/api_util.cc voms-1.9.16.1/src/api/ccapi/api_util.cc
--- voms-1.9.16.1.orig/src/api/ccapi/api_util.cc	2010-03-02 17:23:43.000000000 +0100
+++ voms-1.9.16.1/src/api/ccapi/api_util.cc	2010-03-28 10:16:11.177514044 +0200
@@ -59,6 +59,7 @@
 static bool readdn(std::ifstream &file, char *buffer, int buflen);
 
 extern std::map<vomsdata*, vomsspace::internal*> privatedata;
+extern pthread_mutex_t privatelock;
 
 static void normalize(std::string &name)
 {
@@ -836,7 +837,9 @@
   STACK_OF(X509) *cert_chain = NULL;
   EVP_PKEY       *upkey = NULL;
 
+  pthread_mutex_lock(&privatelock);
   vomsspace::internal *data = privatedata[this];
+  pthread_mutex_unlock(&privatelock);
 
   ucert      = data->cert;
   cert_chain = data->chain;
diff -ur voms-1.9.16.1.orig/src/api/ccapi/voms_api.cc voms-1.9.16.1/src/api/ccapi/voms_api.cc
--- voms-1.9.16.1.orig/src/api/ccapi/voms_api.cc	2009-10-06 14:14:30.000000000 +0200
+++ voms-1.9.16.1/src/api/ccapi/voms_api.cc	2010-03-28 10:15:37.537514555 +0200
@@ -80,7 +80,7 @@
 extern int AC_Init(void);
 
 std::map<vomsdata*, vomsspace::internal*> privatedata;
-
+pthread_mutex_t privatelock = PTHREAD_MUTEX_INITIALIZER;
 
 vomsdata::Initializer::Initializer(Initializer &) {}
 vomsdata::Initializer::Initializer()
@@ -171,14 +171,18 @@
   duration = 0;
 
   vomsspace::internal *data = new vomsspace::internal();
+  pthread_mutex_lock(&privatelock);
   privatedata[this] = data;
+  pthread_mutex_unlock(&privatelock);
 }
 
 
 vomsdata::~vomsdata()
 {
+  pthread_mutex_lock(&privatelock);
   vomsspace::internal *data = privatedata[this];
   (void)privatedata.erase(this);
+  pthread_mutex_unlock(&privatelock);
   delete data;
 }
 
@@ -915,7 +919,9 @@
   STACK_OF(X509) *cert_chain = NULL;
   EVP_PKEY       *upkey = NULL;
 
+  pthread_mutex_lock(&privatelock);
   vomsspace::internal *data = privatedata[this];
+  pthread_mutex_unlock(&privatelock);
 
   /* The condition below should never be true. */
   if (!data)


Index: import.log
===================================================================
RCS file: /cvs/pkgs/rpms/voms/EL-4/import.log,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- import.log	20 Mar 2010 14:35:17 -0000	1.5
+++ import.log	31 Mar 2010 17:16:38 -0000	1.6
@@ -3,3 +3,4 @@ voms-1_9_12_1-1_el5:EL-4:voms-1.9.12.1-1
 voms-1_9_14_2-1_el5:EL-4:voms-1.9.14.2-1.el5.src.rpm:1256141012
 voms-1_9_14_3-1_el5:EL-4:voms-1.9.14.3-1.el5.src.rpm:1262268862
 voms-1_9_16_1-1_el5:EL-4:voms-1.9.16.1-1.el5.src.rpm:1269095696
+voms-1_9_16_1-2_el5:EL-4:voms-1.9.16.1-2.el5.src.rpm:1270055761


Index: voms.spec
===================================================================
RCS file: /cvs/pkgs/rpms/voms/EL-4/voms.spec,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- voms.spec	20 Mar 2010 14:35:18 -0000	1.5
+++ voms.spec	31 Mar 2010 17:16:38 -0000	1.6
@@ -1,6 +1,6 @@
 Name:		voms
 Version:	1.9.16.1
-Release:	1%{?dist}
+Release:	2%{?dist}
 Summary:	Virtual Organization Membership Service
 
 Group:		System Environment/Libraries
@@ -68,6 +68,9 @@ Patch16:	%{name}-deps.patch
 #		Fix uninitialized variable in voms-proxy-init
 #		https://savannah.cern.ch/bugs/?64632
 Patch17:	%{name}-db-method.patch
+#		Add mutex lock for accessing private data
+#		https://savannah.cern.ch/bugs/?65129
+Patch18:	%{name}-thread.patch
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:	globus-gssapi-gsi-devel%{?_isa}
@@ -178,6 +181,7 @@ administrate it remotely using command l
 %patch15 -p1
 %patch16 -p1
 %patch17 -p1
+%patch18 -p1
 
 # Fix bad permissions (which otherwise end up in the debuginfo package)
 find . '(' -name '*.h' -o -name '*.c' -o -name '*.cpp' -o \
@@ -369,6 +373,9 @@ fi
 %doc INSTALL.Fedora
 
 %changelog
+* Sun Mar 28 2010 Mattias Ellert <mattias.ellert at fysast.uu.se> - 1.9.16.1-2
+- Add mutex lock for accessing private data
+
 * Fri Mar 19 2010 Mattias Ellert <mattias.ellert at fysast.uu.se> - 1.9.16.1-1
 - Upstream 1.9.16.1 (CVS tag glite-security-voms_R_1_9_16_1)
 - Fix uninitialized variable in voms-proxy-init



More information about the scm-commits mailing list