backport patch to fix data race

This commit is contained in:
liusirui 2022-10-20 16:32:36 +08:00
parent f9ba3548eb
commit 76c1b16e7a
2 changed files with 54 additions and 1 deletions

View File

@ -0,0 +1,48 @@
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

View File

@ -1,11 +1,13 @@
Name: pcsc-lite Name: pcsc-lite
Version: 1.9.4 Version: 1.9.4
Release: 1 Release: 2
Summary: Middleware to access a smart card using SCard API (PC/SC) Summary: Middleware to access a smart card using SCard API (PC/SC)
License: BSD License: BSD
URL: https://pcsclite.apdu.fr/ URL: https://pcsclite.apdu.fr/
Source0: https://pcsclite.apdu.fr/files/%{name}-%{version}.tar.bz2 Source0: https://pcsclite.apdu.fr/files/%{name}-%{version}.tar.bz2
Patch0: 0001-pcscdaemon.c-Fix-data-race-for-AraKiri-variable.patch
BuildRequires: systemd-devel polkit-devel gettext-devel BuildRequires: systemd-devel polkit-devel gettext-devel
BuildRequires: perl-podlators doxygen gnupg2 gcc python3 BuildRequires: perl-podlators doxygen gnupg2 gcc python3
@ -110,6 +112,9 @@ mkdir -p %{buildroot}/%{_localstatedir}/run/pcscd
%changelog %changelog
* Thu Oct 20 2022 liusirui <liusirui@huawei.com> - 1.9.4-2
- backport patch to fix data race
* Tue Nov 23 2021 yanglongkang <yanglongkang@huawei.com> - 1.9.4-1 * Tue Nov 23 2021 yanglongkang <yanglongkang@huawei.com> - 1.9.4-1
- update to 1.9.4 - update to 1.9.4