pcsc-lite/0001-pcscdaemon.c-Fix-data-race-for-AraKiri-variable.patch

49 lines
1.5 KiB
Diff
Raw Normal View History

2022-10-20 16:32:36 +08:00
From e46aad0c3571bd5f9da4cd4544fa3d6201dc3890 Mon Sep 17 00:00:00 2001
From: Ludovic Rousseau <ludovic.rousseau@free.fr>
Date: Sun, 12 Dec 2021 15:25:32 +0100
Subject: [PATCH] pcscdaemon.c: Fix data race for AraKiri variable
Issue reported by clang ThreadSanitizer
WARNING: ThreadSanitizer: data race (pid=14419)
Read of size 1 at 0x000000f3a9c8 by main thread:
#0 SVCServiceRunLoop <null> (pcscd+0x4c0da9)
#1 main <null> (pcscd+0x4c0694)
Previous write of size 1 at 0x000000f3a9c8 by thread T1:
#0 signal_thread <null> (pcscd+0x4c0aca)
As if synchronized via sleep:
#0 nanosleep <null> (pcscd+0x4297dd)
#1 SYS_USleep <null> (pcscd+0x4c6c36)
#2 SVCServiceRunLoop <null> (pcscd+0x4c0cef)
#3 main <null> (pcscd+0x4c0694)
Location is global 'AraKiri' of size 1 at 0x000000f3a9c8 (pcscd+0x000000f3a9c8)
Thread T1 (tid=14421, running) created by main thread at:
#0 pthread_create <null> (pcscd+0x42be9b)
#1 main <null> (pcscd+0x4c01c8)
SUMMARY: ThreadSanitizer: data race (/home/rousseau/sc/costa/PCSC/src/pcscd+0x4c0da9) in SVCServiceRunLoop
---
src/pcscdaemon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pcscdaemon.c b/src/pcscdaemon.c
index 2cc3fc0..2c4e305 100644
--- a/src/pcscdaemon.c
+++ b/src/pcscdaemon.c
@@ -75,7 +75,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define FALSE 0
#endif
-char AraKiri = FALSE;
+_Atomic char AraKiri = FALSE;
static char Init = TRUE;
char AutoExit = FALSE;
char SocketActivated = FALSE;
--
2.33.0