From 3d9564fd8357791c2761d39a862df9730b3d6031 Mon Sep 17 00:00:00 2001 From: Dave Miller Date: Sat, 11 Jul 2026 01:02:10 -0400 Subject: [PATCH] Bug 1923778: Newer Perl hates PATH being empty (#224) r=mrenvoize --- Bugzilla.pm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Bugzilla.pm b/Bugzilla.pm index 9f7a205d6e..a09a2e033b 100644 --- a/Bugzilla.pm +++ b/Bugzilla.pm @@ -87,7 +87,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 @@ -97,12 +100,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); } } -- 2.47.3