diff --git a/perl-5.31.1-perl-122112-make-sure-SIGPIPE-is-delivered-if-we-tes.patch b/perl-5.31.1-perl-122112-make-sure-SIGPIPE-is-delivered-if-we-tes.patch new file mode 100644 index 0000000..dd36b03 --- /dev/null +++ b/perl-5.31.1-perl-122112-make-sure-SIGPIPE-is-delivered-if-we-tes.patch @@ -0,0 +1,39 @@ +From 293a533c53d9c0fe939e23c439f4dfc47a5736dc Mon Sep 17 00:00:00 2001 +From: Tony Cook +Date: Tue, 25 Jun 2019 15:47:57 +1000 +Subject: [PATCH] (perl #122112) make sure SIGPIPE is delivered if we test it +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Petr Písař +--- + t/io/pipe.t | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/t/io/pipe.t b/t/io/pipe.t +index 9f5bb3bcf8..bdf743c26c 100644 +--- a/t/io/pipe.t ++++ b/t/io/pipe.t +@@ -125,6 +125,18 @@ wait; # Collect from $pid + pipe(READER,WRITER) || die "Can't open pipe"; + close READER; + ++eval { ++ # one platform at least appears to block SIGPIPE by default (see #122112) ++ # so make sure it's unblocked. ++ # The eval wrapper should ensure this does nothing if these aren't ++ # implemented. ++ require POSIX; ++ my $mask = POSIX::SigSet->new(POSIX::SIGPIPE()); ++ my $old = POSIX::SigSet->new(); ++ POSIX::sigprocmask(POSIX::SIG_UNBLOCK(), $mask, $old); ++ note "Yes, SIGPIPE was blocked" if $old->ismember(POSIX::SIGPIPE()); ++}; ++ + $SIG{'PIPE'} = 'broken_pipe'; + + sub broken_pipe { +-- +2.20.1 + diff --git a/perl.spec b/perl.spec index d7e6f2e..d509167 100644 --- a/perl.spec +++ b/perl.spec @@ -83,7 +83,7 @@ License: GPL+ or Artistic Epoch: %{perl_epoch} Version: %{perl_version} # release number must be even higher, because dual-lived modules will be broken otherwise -Release: 440%{?dist} +Release: 441%{?dist} Summary: Practical Extraction and Report Language Url: https://www.perl.org/ Source0: https://www.cpan.org/src/5.0/perl-%{perl_version}.tar.xz @@ -215,6 +215,10 @@ Patch37: perl-5.31.0-CAPTURE_ALL-was-intended-to-be-an-alias-for-make-it- Patch38: perl-5.31.0-perl-134193-allow-CAPTURE-to-work-when-CAPTURE-comes.patch Patch39: perl-5.31.0-perl-134193-make-the-varname-match-the-names.patch +# Fix a test for a crash in SIGALARM handler when waiting on a child process to +# be closed, RT#122112, fixed after 5.31.1 +Patch40: perl-5.31.1-perl-122112-make-sure-SIGPIPE-is-delivered-if-we-tes.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 @@ -2772,6 +2776,7 @@ Perl extension for Version Objects %patch37 -p1 %patch38 -p1 %patch39 -p1 +%patch40 -p1 %patch200 -p1 %patch201 -p1 @@ -2818,6 +2823,7 @@ perl -x patchlevel.h \ 'Fedora Patch37: Fix %%{^CAPTURE_ALL} to be an alias for %%- variable (RT#131867)' \ 'Fedora Patch38: Fix %%{^CAPTURE} value when used after @{^CAPTURE} (RT#134193)' \ 'Fedora Patch39: Fix %%{^CAPTURE} value when used after @{^CAPTURE} (RT#134193)' \ + 'Fedora Patch40: Fix a test for a crash in SIGALARM handler when waiting on a child process to be closed (RT#122112)' \ '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} @@ -5063,6 +5069,10 @@ popd # Old changelog entries are preserved in CVS. %changelog +* Wed Jul 17 2019 Petr Pisar - 4:5.30.0-441 +- Fix a test for a crash in SIGALARM handler when waiting on a child process to + be closed (RT#122112) + * Tue Jun 25 2019 Petr Pisar - 4:5.30.0-440 - Fix an out-of-buffer read while parsing a Unicode property name (RT#134134) - Do not panic when outputting a warning (RT#134059)