From: Dave Miller Date: Sat, 11 Jul 2026 05:01:19 +0000 (-0400) Subject: Bug 1923778: Newer Perl hates PATH being empty (#223) X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c377c05a8febca9e8ffa15817846ed5b6082e9c3;p=thirdparty%2Fbugzilla.git Bug 1923778: Newer Perl hates PATH being empty (#223) r=mrenvoize --- diff --git a/Bugzilla.pm b/Bugzilla.pm index 12d9be33f..59c61e643 100644 --- a/Bugzilla.pm +++ b/Bugzilla.pm @@ -84,7 +84,10 @@ sub init_page { } if (${^TAINT}) { - my $path = ''; + # PATH *MUST* contain SOMETHING or newer Perls will throw an error. Keep this + # minimal and platform-specific so command lookups still work when needed. + # see https://bugzilla.mozilla.org/show_bug.cgi?id=1923778 + my $path = '/bin:/usr/bin'; if (ON_WINDOWS) { # On Windows, these paths are tainted, preventing @@ -94,12 +97,18 @@ sub init_page { trick_taint($ENV{$temp}) if $ENV{$temp}; } + # Native Windows command lookup should include System32. + my $system_root = $ENV{SYSTEMROOT} || $ENV{WINDIR} || 'C:\\Windows'; + trick_taint($system_root); + $path = "$system_root\\System32"; + # 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); + my $perl_path = dirname($^X); + my $c_path = $perl_path; $c_path =~ s/\bperl\b(?=\\bin)/c/; - $path .= ";$c_path"; + $path .= ";$perl_path;$c_path"; trick_taint($path); } }