From d5f5268585f529dcb50fccd6b62fb30616c8a24b Mon Sep 17 00:00:00 2001 From: Su Lifan Date: Mon, 11 Apr 2022 11:06:12 +0800 Subject: [PATCH] Fix data race of proc_file_chain in _IO_new_proc_open() Signed-off-by: Su Lifan --- 10001-glibc-fix-race-popen.patch | 25 +++++++++++++++++++++++++ glibc.spec | 7 ++++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 10001-glibc-fix-race-popen.patch diff --git a/10001-glibc-fix-race-popen.patch b/10001-glibc-fix-race-popen.patch new file mode 100644 index 0000000..222b2bf --- /dev/null +++ b/10001-glibc-fix-race-popen.patch @@ -0,0 +1,25 @@ +This patch provides a workaround of data race inside _IO_new_proc_open() + +(upstream BZ#22834) + +Signed-off-by: Su Lifan + +diff -aurN glibc-2.28.orig/libio/iopopen.c glibc-2.28/libio/iopopen.c +--- glibc-2.28.orig/libio/iopopen.c 2018-08-01 05:10:47.000000000 +0000 ++++ glibc-2.28/libio/iopopen.c 2022-04-08 11:33:15.487864923 +0000 +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + + struct _IO_proc_file + { +@@ -168,6 +169,7 @@ + _IO_lock_lock (proc_file_chain_lock); + #endif + ((_IO_proc_file *) fp)->next = proc_file_chain; ++ atomic_write_barrier(); + proc_file_chain = (_IO_proc_file *) fp; + #ifdef _IO_MTSAFE_IO + _IO_lock_unlock (proc_file_chain_lock); diff --git a/glibc.spec b/glibc.spec index 48a7091..622f6f9 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,4 +1,4 @@ -%define anolis_release .0.1 +%define anolis_release .0.2 %define glibcsrcdir glibc-2.28 %define glibcversion 2.28 %define glibcrelease 164%{anolis_release}%{?dist}.3 @@ -740,6 +740,8 @@ Patch1003: glibc-elf-Align-argument-of-__munmap-to-page-size-BZ-28676-3.patch Patch1004: glibc-Support-target-specific-ALIGN-for-variable-alignment-4.patch Patch1005: glibc-elf-Fix-tst-align3.patch +Patch10001: 10001-glibc-fix-race-popen.patch + ############################################################################## # Continued list of core "glibc" package information: ############################################################################## @@ -2651,6 +2653,9 @@ fi %files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared %changelog +* Fri Apr 8 2022 Su Lifan - 2.28-164.0.2.3 +- Fix data race of proc_file_chain in _IO_new_proc_open() + * Mon Mar 21 2022 Rongwei Wang - 2.28-164.0.1.3 - elf: Properly align PT_LOAD segments