From: Peter Rabbitson Date: Mon, 10 Feb 2014 12:29:45 +0000 (+0100) Subject: PATH may be unset entirely X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=66a65d81075460c8508f300b26209bc77cbed6d6;p=dbsrgits%2FDBIx-Class-Historic.git PATH may be unset entirely Tested with ~$ bash -c 'perl=$(which perl); unset PATH; $perl t/54taint.t' --- diff --git a/t/54taint.t b/t/54taint.t index cfcde43..7f0db9a 100644 --- a/t/54taint.t +++ b/t/54taint.t @@ -10,12 +10,15 @@ BEGIN { unless ($INC{'t/lib/DBICTest/WithTaint.pm'}) { # and with relative paths *and* with a relative $^X and some other # craziness... in short: just be proactive require File::Spec; - $ENV{PATH} = join $Config{path_sep}, - map { length($_) ? File::Spec->rel2abs($_) : () } - split /\Q$Config{path_sep}/, $ENV{PATH} - ; - my $perl = $^X; - ($_) = $_ =~ /\A(.+)\z/ for ( $ENV{PATH}, $perl ); + + if (length $ENV{PATH}) { + ( $ENV{PATH} ) = join ( $Config{path_sep}, + map { length($_) ? File::Spec->rel2abs($_) : () } + split /\Q$Config{path_sep}/, $ENV{PATH} + ) =~ /\A(.+)\z/; + } + + my ($perl) = $^X =~ /\A(.+)\z/; { local $ENV{PATH} = "/nosuchrootbindir"; @@ -63,7 +66,7 @@ throws_ok ( sub { $ENV{PATH} . (kill (0)) }, qr/Insecure dependency in kill/, 'taint mode active' -); +) if length $ENV{PATH}; { package DBICTest::Taint::Classes;