Commit 9cd7cb75 authored by Frédéric Buclin's avatar Frédéric Buclin

Bug 987742: Strawberry Perl requires C:\strawberry\c\bin\ to be in $ENV{PATH} to…

Bug 987742: Strawberry Perl requires C:\strawberry\c\bin\ to be in $ENV{PATH} to correctly load XS modules r=gerv a=dkl
parent a326cd55
......@@ -82,19 +82,27 @@ sub init_page {
}
if (${^TAINT}) {
# Some environment variables are not taint safe
delete @::ENV{'PATH', 'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
# Some modules throw undefined errors (notably File::Spec::Win32) if
# PATH is undefined.
$ENV{'PATH'} = '';
# On Windows, these paths are tainted, preventing File::Spec::Win32->tmpdir
# from using them. But we need a place to temporary store attachments
# which are uploaded.
my $path = '';
if (ON_WINDOWS) {
# On Windows, these paths are tainted, preventing
# File::Spec::Win32->tmpdir from using them. But we need
# a place to temporary store attachments which are uploaded.
foreach my $temp (qw(TMPDIR TMP TEMP)) {
trick_taint($ENV{$temp}) if $ENV{$temp};
}
# Some DLLs used by Strawberry Perl are also in c\bin,
# see https://rt.cpan.org/Public/Bug/Display.html?id=99104
if (!ON_ACTIVESTATE) {
my $c_path = $path = dirname($^X);
$c_path =~ s/\bperl\b(?=\\bin)/c/;
$path .= ";$c_path";
}
}
# Some environment variables are not taint safe
delete @::ENV{'PATH', 'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
# Some modules throw undefined errors (notably File::Spec::Win32) if
# PATH is undefined.
$ENV{'PATH'} = $path;
}
# Because this function is run live from perl "use" commands of
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment