Fix stack handling when calling chdir without an argument
This commit is contained in:
parent
62440eed42
commit
97b9d9c092
|
@ -0,0 +1,66 @@
|
||||||
|
From d47812b974b515e952dc093e692bf15f0a9afbc4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tony Cook <tony@develop-help.com>
|
||||||
|
Date: Mon, 5 Sep 2016 15:40:11 +1000
|
||||||
|
Subject: [PATCH] (perl #129130) make chdir allocate the stack it needs
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Ported to 5.24.0:
|
||||||
|
|
||||||
|
commit 92c843fb4b4e1a1e0ac7ec0fe198dc77266838da
|
||||||
|
Author: Tony Cook <tony@develop-help.com>
|
||||||
|
Date: Mon Sep 5 15:40:11 2016 +1000
|
||||||
|
|
||||||
|
(perl #129130) make chdir allocate the stack it needs
|
||||||
|
|
||||||
|
chdir with no argument didn't ensure there was stack space available
|
||||||
|
for its result.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
pp_sys.c | 1 +
|
||||||
|
t/op/chdir.t | 8 +++++++-
|
||||||
|
2 files changed, 8 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/pp_sys.c b/pp_sys.c
|
||||||
|
index 3bf2673..d2cf872 100644
|
||||||
|
--- a/pp_sys.c
|
||||||
|
+++ b/pp_sys.c
|
||||||
|
@@ -3639,6 +3639,7 @@ PP(pp_chdir)
|
||||||
|
HV * const table = GvHVn(PL_envgv);
|
||||||
|
SV **svp;
|
||||||
|
|
||||||
|
+ EXTEND(SP, 1);
|
||||||
|
if ( (svp = hv_fetchs(table, "HOME", FALSE))
|
||||||
|
|| (svp = hv_fetchs(table, "LOGDIR", FALSE))
|
||||||
|
#ifdef VMS
|
||||||
|
diff --git a/t/op/chdir.t b/t/op/chdir.t
|
||||||
|
index a5ea76a..685e556 100644
|
||||||
|
--- a/t/op/chdir.t
|
||||||
|
+++ b/t/op/chdir.t
|
||||||
|
@@ -10,7 +10,7 @@ BEGIN {
|
||||||
|
# possibilities into @INC.
|
||||||
|
unshift @INC, qw(t . lib ../lib);
|
||||||
|
require "test.pl";
|
||||||
|
- plan(tests => 47);
|
||||||
|
+ plan(tests => 48);
|
||||||
|
}
|
||||||
|
|
||||||
|
use Config;
|
||||||
|
@@ -161,6 +161,12 @@ sub check_env {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+fresh_perl_is(<<'EOP', '', { stderr => 1 }, "check stack handling");
|
||||||
|
+for $x (map $_+1, 1 .. 100) {
|
||||||
|
+ map chdir, 1 .. $x;
|
||||||
|
+}
|
||||||
|
+EOP
|
||||||
|
+
|
||||||
|
my %Saved_Env = ();
|
||||||
|
sub clean_env {
|
||||||
|
foreach my $env (@magic_envs) {
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
|
@ -215,6 +215,9 @@ Patch56: perl-5.24.0-regcomp.c-fix-perl-129950-fix-firstchar-bitmap-under
|
||||||
# RT#130001, in upstream after 5.25.6
|
# RT#130001, in upstream after 5.25.6
|
||||||
Patch57: perl-5.25.6-perl-130001-h2xs-avoid-infinite-loop-for-enums.patch
|
Patch57: perl-5.25.6-perl-130001-h2xs-avoid-infinite-loop-for-enums.patch
|
||||||
|
|
||||||
|
# Fix stack handling when calling chdir without an argument, RT#129130
|
||||||
|
Patch58: perl-5.24.0-perl-129130-make-chdir-allocate-the-stack-it-needs.patch
|
||||||
|
|
||||||
# Link XS modules to libperl.so with EU::CBuilder on Linux, bug #960048
|
# 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
|
Patch200: perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch
|
||||||
|
|
||||||
|
@ -2895,6 +2898,7 @@ Perl extension for Version Objects
|
||||||
%patch55 -p1
|
%patch55 -p1
|
||||||
%patch56 -p1
|
%patch56 -p1
|
||||||
%patch57 -p1
|
%patch57 -p1
|
||||||
|
%patch58 -p1
|
||||||
%patch200 -p1
|
%patch200 -p1
|
||||||
%patch201 -p1
|
%patch201 -p1
|
||||||
|
|
||||||
|
@ -2943,6 +2947,7 @@ perl -x patchlevel.h \
|
||||||
'Fedora Patch55: Fix parsing perl options in shell bang line (RT#129336)' \
|
'Fedora Patch55: Fix parsing perl options in shell bang line (RT#129336)' \
|
||||||
'Fedora Patch56: Fix firstchar bitmap under UTF-8 with prefix optimization (RT#129950)' \
|
'Fedora Patch56: Fix firstchar bitmap under UTF-8 with prefix optimization (RT#129950)' \
|
||||||
'Fedora Patch57: Avoid infinite loop in h2xs tool if enum and type have the same name (RT130001)' \
|
'Fedora Patch57: Avoid infinite loop in h2xs tool if enum and type have the same name (RT130001)' \
|
||||||
|
'Fedora Patch58: Fix stack handling when calling chdir without an argument (RT#129130)' \
|
||||||
'Fedora Patch200: Link XS modules to libperl.so with EU::CBuilder on Linux' \
|
'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' \
|
'Fedora Patch201: Link XS modules to libperl.so with EU::MM on Linux' \
|
||||||
%{nil}
|
%{nil}
|
||||||
|
@ -5230,6 +5235,7 @@ popd
|
||||||
- Fix firstchar bitmap under UTF-8 with prefix optimization (RT#129950)
|
- Fix firstchar bitmap under UTF-8 with prefix optimization (RT#129950)
|
||||||
- Avoid infinite loop in h2xs tool if enum and type have the same name
|
- Avoid infinite loop in h2xs tool if enum and type have the same name
|
||||||
(RT130001)
|
(RT130001)
|
||||||
|
- Fix stack handling when calling chdir without an argument (RT#129130)
|
||||||
|
|
||||||
* Fri Sep 02 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-378
|
* Fri Sep 02 2016 Petr Pisar <ppisar@redhat.com> - 4:5.24.0-378
|
||||||
- perl-core depends on Parse::CPAN::Meta module instead of package name to allow
|
- perl-core depends on Parse::CPAN::Meta module instead of package name to allow
|
||||||
|
|
Loading…
Reference in New Issue