|
|
dcb3b7 |
From d47812b974b515e952dc093e692bf15f0a9afbc4 Mon Sep 17 00:00:00 2001
|
|
|
dcb3b7 |
From: Tony Cook <tony@develop-help.com>
|
|
|
dcb3b7 |
Date: Mon, 5 Sep 2016 15:40:11 +1000
|
|
|
dcb3b7 |
Subject: [PATCH] (perl #129130) make chdir allocate the stack it needs
|
|
|
dcb3b7 |
MIME-Version: 1.0
|
|
|
dcb3b7 |
Content-Type: text/plain; charset=UTF-8
|
|
|
dcb3b7 |
Content-Transfer-Encoding: 8bit
|
|
|
dcb3b7 |
|
|
|
dcb3b7 |
Ported to 5.24.0:
|
|
|
dcb3b7 |
|
|
|
dcb3b7 |
commit 92c843fb4b4e1a1e0ac7ec0fe198dc77266838da
|
|
|
dcb3b7 |
Author: Tony Cook <tony@develop-help.com>
|
|
|
dcb3b7 |
Date: Mon Sep 5 15:40:11 2016 +1000
|
|
|
dcb3b7 |
|
|
|
dcb3b7 |
(perl #129130) make chdir allocate the stack it needs
|
|
|
dcb3b7 |
|
|
|
dcb3b7 |
chdir with no argument didn't ensure there was stack space available
|
|
|
dcb3b7 |
for its result.
|
|
|
dcb3b7 |
|
|
|
dcb3b7 |
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
|
|
dcb3b7 |
---
|
|
|
dcb3b7 |
pp_sys.c | 1 +
|
|
|
dcb3b7 |
t/op/chdir.t | 8 +++++++-
|
|
|
dcb3b7 |
2 files changed, 8 insertions(+), 1 deletion(-)
|
|
|
dcb3b7 |
|
|
|
dcb3b7 |
diff --git a/pp_sys.c b/pp_sys.c
|
|
|
dcb3b7 |
index 3bf2673..d2cf872 100644
|
|
|
dcb3b7 |
--- a/pp_sys.c
|
|
|
dcb3b7 |
+++ b/pp_sys.c
|
|
|
dcb3b7 |
@@ -3639,6 +3639,7 @@ PP(pp_chdir)
|
|
|
dcb3b7 |
HV * const table = GvHVn(PL_envgv);
|
|
|
dcb3b7 |
SV **svp;
|
|
|
dcb3b7 |
|
|
|
dcb3b7 |
+ EXTEND(SP, 1);
|
|
|
dcb3b7 |
if ( (svp = hv_fetchs(table, "HOME", FALSE))
|
|
|
dcb3b7 |
|| (svp = hv_fetchs(table, "LOGDIR", FALSE))
|
|
|
dcb3b7 |
#ifdef VMS
|
|
|
dcb3b7 |
diff --git a/t/op/chdir.t b/t/op/chdir.t
|
|
|
dcb3b7 |
index a5ea76a..685e556 100644
|
|
|
dcb3b7 |
--- a/t/op/chdir.t
|
|
|
dcb3b7 |
+++ b/t/op/chdir.t
|
|
|
dcb3b7 |
@@ -10,7 +10,7 @@ BEGIN {
|
|
|
dcb3b7 |
# possibilities into @INC.
|
|
|
dcb3b7 |
unshift @INC, qw(t . lib ../lib);
|
|
|
dcb3b7 |
require "test.pl";
|
|
|
dcb3b7 |
- plan(tests => 47);
|
|
|
dcb3b7 |
+ plan(tests => 48);
|
|
|
dcb3b7 |
}
|
|
|
dcb3b7 |
|
|
|
dcb3b7 |
use Config;
|
|
|
dcb3b7 |
@@ -161,6 +161,12 @@ sub check_env {
|
|
|
dcb3b7 |
}
|
|
|
dcb3b7 |
}
|
|
|
dcb3b7 |
|
|
|
dcb3b7 |
+fresh_perl_is(<<'EOP', '', { stderr => 1 }, "check stack handling");
|
|
|
dcb3b7 |
+for $x (map $_+1, 1 .. 100) {
|
|
|
dcb3b7 |
+ map chdir, 1 .. $x;
|
|
|
dcb3b7 |
+}
|
|
|
dcb3b7 |
+EOP
|
|
|
dcb3b7 |
+
|
|
|
dcb3b7 |
my %Saved_Env = ();
|
|
|
dcb3b7 |
sub clean_env {
|
|
|
dcb3b7 |
foreach my $env (@magic_envs) {
|
|
|
dcb3b7 |
--
|
|
|
dcb3b7 |
2.7.4
|
|
|
dcb3b7 |
|