From e46aad0c3571bd5f9da4cd4544fa3d6201dc3890 Mon Sep 17 00:00:00 2001 From: Ludovic Rousseau 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 (pcscd+0x4c0da9) #1 main (pcscd+0x4c0694) Previous write of size 1 at 0x000000f3a9c8 by thread T1: #0 signal_thread (pcscd+0x4c0aca) As if synchronized via sleep: #0 nanosleep (pcscd+0x4297dd) #1 SYS_USleep (pcscd+0x4c6c36) #2 SVCServiceRunLoop (pcscd+0x4c0cef) #3 main (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 (pcscd+0x42be9b) #1 main (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