[Pcsclite-cvs-commit] r4809 - /trunk/PCSC/src/winscard_svc.c
rousseau at users.alioth.debian.org
rousseau at users.alioth.debian.org
Tue Mar 9 15:46:53 UTC 2010
Author: rousseau
Date: Tue Mar 9 15:46:52 2010
New Revision: 4809
URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=4809
Log:
read only accesses to contextsList list shall also be protected by a mutex
Modified:
trunk/PCSC/src/winscard_svc.c
Modified: trunk/PCSC/src/winscard_svc.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_svc.c?rev=4809&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_svc.c (original)
+++ trunk/PCSC/src/winscard_svc.c Tue Mar 9 15:46:52 2010
@@ -144,7 +144,9 @@
int listSize;
SCONTEXT * newContext = NULL;
+ (void)SYS_MutexLock(&contextsList_lock);
listSize = list_size(&contextsList);
+ (void)SYS_MutexUnLock(&contextsList_lock);
if (listSize >= contextMaxThreadCounter)
{
@@ -931,6 +933,7 @@
static LONG MSGCleanupClient(SCONTEXT * threadContext)
{
int lrv;
+ int listSize;
if (threadContext->hContext != 0)
{
@@ -950,6 +953,7 @@
(void)SYS_MutexLock(&contextsList_lock);
lrv = list_delete(&contextsList, threadContext);
+ listSize = list_size(&contextsList);
(void)SYS_MutexUnLock(&contextsList_lock);
if (lrv < 0)
Log2(PCSC_LOG_CRITICAL, "list_delete failed with error %x", lrv);
@@ -957,7 +961,7 @@
free(threadContext);
/* start a suicide alarm */
- if (AutoExit && (list_size(&contextsList) < 1))
+ if (AutoExit && (listSize < 1))
{
Log2(PCSC_LOG_DEBUG, "Starting suicide alarm in %d seconds",
TIME_BEFORE_SUICIDE);
More information about the Pcsclite-cvs-commit
mailing list