diff --git a/perl-5.31.5-prevent-a-race-between-name-based-stat-and-an-open-m.patch b/perl-5.31.5-prevent-a-race-between-name-based-stat-and-an-open-m.patch new file mode 100644 index 0000000..27a500b --- /dev/null +++ b/perl-5.31.5-prevent-a-race-between-name-based-stat-and-an-open-m.patch @@ -0,0 +1,48 @@ +From 7c3f362035dec9b7eaec388b1f7f1619c1bd96a3 Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Mon, 4 Nov 2019 09:52:22 +1100 +Subject: [PATCH] prevent a race between name-based stat and an open modifying + atime +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Most linux systems rarely update atime, so it's very unlikely +for this issue to trigger there, but on a system with classic atime +behaviour this was a race between open modifying atime and time() +ticking over. + +gh #17234 + +Signed-off-by: Petr Písař +--- + lib/File/stat.t | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/lib/File/stat.t b/lib/File/stat.t +index c403fc4498..fc9bb12cef 100644 +--- a/lib/File/stat.t ++++ b/lib/File/stat.t +@@ -133,6 +133,9 @@ SKIP: { + test_X_ops($^X, "for $^X", qr/A/); + } + ++# open early so atime is consistent with the name based call ++local *STAT; ++my $canopen = open(STAT, '<', $file); + + my $stat = File::stat::stat($file); + isa_ok($stat, 'File::stat', 'should build a stat object'); +@@ -143,8 +146,7 @@ for (split //, "tTB") { + } + + SKIP: { +- local *STAT; +- skip("Could not open file: $!", 2) unless open(STAT, '<', $file); ++ skip("Could not open file: $!", 2) unless $canopen; + isa_ok(File::stat::stat('STAT'), 'File::stat', + '... should be able to find filehandle'); + +-- +2.21.0 + diff --git a/perl.spec b/perl.spec index 0c45904..30f819a 100644 --- a/perl.spec +++ b/perl.spec @@ -281,6 +281,9 @@ Patch67: perl-5.31.5-Tie-StdHandle-BINMODE-handle-layer-argument.patch Patch68: perl-5.31.5-toke.c-Fix-bug-tr-upgrading-to-UTF-8-in-middle.patch Patch69: perl-5.31.5-toke.c-comment-changes.patch +# Fix a race in File::stat() tests, GH#17234, in upstream after 5.31.5 +Patch70: perl-5.31.5-prevent-a-race-between-name-based-stat-and-an-open-m.patch + # Link XS modules to libperl.so with EU::CBuilder on Linux, bug #960048 Patch200: perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch @@ -2871,6 +2874,7 @@ rm -rf .git # Perl tests examine a git repository %patch67 -p1 %patch68 -p1 %patch69 -p1 +%patch70 -p1 %patch200 -p1 %patch201 -p1 @@ -2935,6 +2939,7 @@ perl -x patchlevel.h \ 'Fedora Patch67: Fix handling a layer argument in Tie::StdHandle::BINMODE() (RT#132475)' \ 'Fedora Patch68: Fix an unintended upgrade to UTF-8 in the middle of a transliteration' \ 'Fedora Patch69: Fix an unintended upgrade to UTF-8 in the middle of a transliteration' \ + 'Fedora Patch70: Fix a race in File::stat() tests (GH#17234)' \ 'Fedora Patch200: Link XS modules to libperl.so with EU::CBuilder on Linux' \ 'Fedora Patch201: Link XS modules to libperl.so with EU::MM on Linux' \ %{nil} @@ -5186,6 +5191,7 @@ popd - Fix taint mode documentation regarding @INC - Fix handling a layer argument in Tie::StdHandle::BINMODE() (RT#132475) - Fix an unintended upgrade to UTF-8 in the middle of a transliteration +- Fix a race in File::stat() tests (GH#17234) * Mon Nov 11 2019 Jitka Plesnikova - 4:5.30.1-447 - 5.30.1 bump (see