Do not crash when vivifying $|
This commit is contained in:
parent
b665a2c042
commit
cb730bc15c
75
perl-5.16.1-perl-115206-Don-t-crash-when-vivifying.patch
Normal file
75
perl-5.16.1-perl-115206-Don-t-crash-when-vivifying.patch
Normal file
@ -0,0 +1,75 @@
|
||||
Ported to 5.16.1:
|
||||
|
||||
From 4505a31f43ca4e1a0e9203b389f6d4bebab9d899 Mon Sep 17 00:00:00 2001
|
||||
From: Father Chrysostomos <sprout@cpan.org>
|
||||
Date: Tue, 9 Oct 2012 20:47:18 -0700
|
||||
Subject: [PATCH] =?UTF-8?q?[perl=20#115206]=20Don=E2=80=99t=20crash=20when=20?=
|
||||
=?UTF-8?q?vivifying=20$|?=
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
It was trying to read the currently-selected handle without checking
|
||||
whether it was selected. It is actually not necessary to initialise
|
||||
the variable this way, as the next use of get-magic on it will clobber
|
||||
the cached value.
|
||||
|
||||
This initialisation was originally added in commit d8ce0c9a45. The
|
||||
bug it was fixing was probably caused by missing FETCH calls that are
|
||||
no longer missing.
|
||||
---
|
||||
gv.c | 5 +----
|
||||
t/op/magic.t | 5 ++++-
|
||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/gv.c b/gv.c
|
||||
index f352452..cf02ca4 100644
|
||||
--- a/gv.c
|
||||
+++ b/gv.c
|
||||
@@ -1913,10 +1913,6 @@ Perl_gv_fetchpvn_flags(pTHX_ const char *nambeg, STRLEN full_len, I32 flags,
|
||||
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);
|
||||
@@ -1957,6 +1953,7 @@ Perl_gv_fetchpvn_flags(pTHX_ const char *nambeg, STRLEN full_len, I32 flags,
|
||||
case '>': /* $> */
|
||||
case '\\': /* $\ */
|
||||
case '/': /* $/ */
|
||||
+ case '|': /* $| */
|
||||
case '$': /* $$ */
|
||||
case '\001': /* $^A */
|
||||
case '\003': /* $^C */
|
||||
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
|
||||
@@ -5,7 +5,7 @@ BEGIN {
|
||||
chdir 't' if -d 't';
|
||||
@INC = '../lib';
|
||||
require './test.pl';
|
||||
- plan (tests => 156);
|
||||
+ plan (tests => 157);
|
||||
}
|
||||
|
||||
# Test that defined() returns true for magic variables created on the fly,
|
||||
@@ -581,6 +581,11 @@ SKIP: {
|
||||
}
|
||||
}
|
||||
|
||||
+# $|
|
||||
+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
|
||||
|
10
perl.spec
10
perl.spec
@ -29,7 +29,7 @@
|
||||
Name: perl
|
||||
Version: %{perl_version}
|
||||
# release number must be even higher, because dual-lived modules will be broken otherwise
|
||||
Release: 239%{?dist}
|
||||
Release: 240%{?dist}
|
||||
Epoch: %{perl_epoch}
|
||||
Summary: Practical Extraction and Report Language
|
||||
Group: Development/Languages
|
||||
@ -109,6 +109,9 @@ Patch17: perl-5.16.1-perl-105924-require-1-2.patch
|
||||
# Extend stack in File::Glob::glob, rhbz#859332, RT#114984, fixed after 5.17.4
|
||||
Patch18: perl-5.16.1-perl-114984-Glob.xs-Extend-stack-when-returning.patch
|
||||
|
||||
# Do not crash when vivifying $|, rhbz#865296, RT#115206
|
||||
Patch19: perl-5.16.1-perl-115206-Don-t-crash-when-vivifying.patch
|
||||
|
||||
# Update some of the bundled modules
|
||||
# see http://fedoraproject.org/wiki/Perl/perl.spec for instructions
|
||||
|
||||
@ -1372,6 +1375,7 @@ tarball from perl.org.
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
|
||||
#copy the example script
|
||||
cp -a %{SOURCE5} .
|
||||
@ -1582,6 +1586,7 @@ pushd %{build_archlib}/CORE/
|
||||
'Fedora Patch16: Do not leak with attribute on my variable (RT#114764)' \
|
||||
'Fedora Patch17: Allow operator after numeric keyword argument (RT#105924)' \
|
||||
'Fedora Patch18: Extend stack in File::Glob::glob, (RT#114984)' \
|
||||
'Fedora Patch19: Do not crash when vivifying $|' \
|
||||
%{nil}
|
||||
|
||||
rm patchlevel.bak
|
||||
@ -2727,6 +2732,9 @@ sed \
|
||||
|
||||
# Old changelog entries are preserved in CVS.
|
||||
%changelog
|
||||
* Wed Oct 17 2012 Jitka Plesnikova <jplesnik@redhat.com> - 4:5.16.1-240
|
||||
- Do not crash when vivifying $| (bug #865296)
|
||||
|
||||
* Mon Sep 24 2012 Petr Pisar <ppisar@redhat.com> - 4:5.16.1-239
|
||||
- Conflict perl-podlators with perl before sub-packaging (bug #856516)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user