[perl/f17] Do not crash when vivifying $|

Jitka Plesnikova jplesnik at fedoraproject.org
Thu Oct 18 13:21:40 UTC 2012


commit 67c66444384247011fbf2749b1c65a8f2a1f9f14
Author: Jitka Plesnikova <jplesnik at redhat.com>
Date:   Thu Oct 18 15:21:24 2012 +0200

    Do not crash when vivifying $|

 ....1-perl-115206-Don-t-crash-when-vivifying.patch |   51 ++++++++++++++++++++
 perl.spec                                          |   10 ++++-
 2 files changed, 60 insertions(+), 1 deletions(-)
---
diff --git a/perl-5.16.1-perl-115206-Don-t-crash-when-vivifying.patch b/perl-5.16.1-perl-115206-Don-t-crash-when-vivifying.patch
new file mode 100644
index 0000000..3b6a213
--- /dev/null
+++ b/perl-5.16.1-perl-115206-Don-t-crash-when-vivifying.patch
@@ -0,0 +1,51 @@
+diff --git a/gv.c b/gv.c
+index f352452..cf02ca4 100644
+--- a/gv.c
++++ b/gv.c
+@@ -1504,10 +1504,6 @@ Perl_gv_fetchpvn_flags(pTHX_ const char
+ 		Perl_ck_warner_d(aTHX_ packWARN2(WARN_DEPRECATED, WARN_SYNTAX),
+ 				 "$%c is no longer supported", *name);
+ 	    break;
+-	case '|':		/* $| */
+-	    sv_setiv(GvSVn(gv), (IV)(IoFLAGS(GvIOp(PL_defoutgv)) & IOf_FLUSH) != 0);
+-	    goto magicalize;
+-
+ 	case '\010':	/* $^H */
+ 	    {
+ 		HV *const hv = GvHVn(gv);
+@@ -1540,6 +1536,7 @@ Perl_gv_fetchpvn_flags(pTHX_ const char
+ 	case '>':		/* $> */
+ 	case '\\':		/* $\ */
+ 	case '/':		/* $/ */
++	case '|':		/* $| */
+ 	case '\001':	/* $^A */
+ 	case '\003':	/* $^C */
+ 	case '\004':	/* $^D */
+diff --git a/t/op/magic.t b/t/op/magic.t
+index 3fb1ea1..1bcfbd9 100644
+--- a/t/op/magic.t
++++ b/t/op/magic.t
+@@ -12,7 +12,7 @@ BEGIN {
+ use warnings;
+ use Config;
+ 
+-plan (tests => 87);
++plan (tests => 88);
+ 
+ $Is_MSWin32  = $^O eq 'MSWin32';
+ $Is_NetWare  = $^O eq 'NetWare';
+@@ -471,6 +471,11 @@ foreach my $sig (qw(__DIE__ _BOGUS_HOOK
+ 
+ }
+ 
++# $|
++fresh_perl_is
++ 'select f; undef *f; ${q/|/}; print STDOUT qq|ok\n|', "ok\n", {}, 
++ '[perl #115206] no crash when vivifying $| while *{+select}{IO} is undef';
++
+ # ^^^^^^^^^ New tests go here ^^^^^^^^^
+ 
+ SKIP: {
+-- 
+1.7.7.6
+
diff --git a/perl.spec b/perl.spec
index 4cddecf..98c8d1b 100644
--- a/perl.spec
+++ b/perl.spec
@@ -24,7 +24,7 @@
 Name:           perl
 Version:        %{perl_version}
 # release number must be even higher, because dual-lived modules will be broken otherwise
-Release:        216%{?dist}
+Release:        217%{?dist}
 Epoch:          %{perl_epoch}
 Summary:        Practical Extraction and Report Language
 Group:          Development/Languages
@@ -101,6 +101,9 @@ Patch17:        perl-5.14.2-RT-113730-should-be-cleared-on-do-IO-error.patch
 # Do not truncate syscall() return value to 32 bits, rhbz#838551, RT#113980
 Patch18:        perl-5.16.1-perl-113980-pp_syscall-I32-retval-truncates-the-retu.patch
 
+# Do not crash when vivifying $|, rhbz#865296, RT#115206
+Patch19:        perl-5.16.1-perl-115206-Don-t-crash-when-vivifying.patch
+
 # Free hash entries before values on delete, rhbz#771303, RT#100340
 Patch20:        perl-5.14.2-perl-100340-Free-hash-entries-before-values-on-delet.patch
 
@@ -1277,6 +1280,7 @@ tarball from perl.org.
 %patch16 -p1
 %patch17 -p1
 %patch18 -p1
+%patch19 -p1
 %patch20 -p1
 %patch21 -p1
 
@@ -1486,6 +1490,7 @@ pushd %{build_archlib}/CORE/
     'Fedora Patch16: Fix find2perl to translate ? glob properly (RT#113054)' \
     'Fedora Patch17: Clear $@ before "do" I/O error (RT#113730)' \
     'Fedora Patch18: Do not truncate syscall() return value to 32 bits (RT#113980)' \
+    'Fedora Patch19: Do not crash when vivifying $|' \
     'Fedora Patch20: Free hash entries before values on delete (RT#100340)' \
     'Fedora Patch21: Override the Pod::Simple::parse_file (CPANRT#77530)' \
     %{nil}
@@ -2439,6 +2444,9 @@ sed \
 
 # Old changelog entries are preserved in CVS.
 %changelog
+* Wed Oct 17 2012 Jitka Plesnikova <jplesnik at redhat.com> - 4:5.14.3-217
+- Do not crash when vivifying $| (bug #865296)
+
 * Mon Oct 15 2012 Jitka Plesnikova <jplesnik at redhat.com> - 4:5.14.3-216
 - 5.14.3 bump (see
   https://metacpan.org/module/DOM/perl-5.14.3/pod/perldelta.pod for release


More information about the scm-commits mailing list