summaryrefslogtreecommitdiff
path: root/lib/File/Spec/OS2.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/File/Spec/OS2.pm')
-rw-r--r--lib/File/Spec/OS2.pm10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/File/Spec/OS2.pm b/lib/File/Spec/OS2.pm
index 20bf8c9dce..6392ba4acb 100644
--- a/lib/File/Spec/OS2.pm
+++ b/lib/File/Spec/OS2.pm
@@ -33,7 +33,15 @@ my $tmpdir;
sub tmpdir {
return $tmpdir if defined $tmpdir;
my $self = shift;
- foreach (@ENV{qw(TMPDIR TEMP TMP)}, qw(/tmp /)) {
+ my @dirlist = ( @ENV{qw(TMPDIR TEMP TMP)}, qw(/tmp /) );
+ {
+ no strict 'refs';
+ if (${"\cTAINT"}) { # Check for taint mode on perl >= 5.8.0
+ require Scalar::Util;
+ @dirlist = grep { ! Scalar::Util::tainted $_ } @dirlist;
+ }
+ }
+ foreach (@dirlist) {
next unless defined && -d;
$tmpdir = $_;
last;