As discussed with Dave Mitchell in private email.
Revision history for Perl distribution PathTools.
+3.67 - Mon Feb 27 09:33:04 EST 2017
+- Add security usage note to File::Spec::no_upwards
+
3.66 - Sat Nov 19 10:30:19 MST 2016
- white space change so can compile under C++11
use Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
-$VERSION = '3.66';
+$VERSION = '3.67';
my $xs_version = $VERSION;
$VERSION =~ tr/_//d;
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.66';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
my %module = (MacOS => 'Mac',
=item no_upwards
-Given a list of file names, strip out those that refer to a parent
-directory. (Does not strip symlinks, only '.', '..', and equivalents.)
+Given a list of files in a directory (such as from C<readdir()>),
+strip out C<'.'> and C<'..'>.
- @paths = File::Spec->no_upwards( @paths );
+B<SECURITY NOTE:> This does NOT filter paths containing C<'..'>, like
+C<'../../../../etc/passwd'>, only literal matches to C<'.'> and C<'..'>.
+
+ @paths = File::Spec->no_upwards( readdir $dirhandle );
=item case_tolerant
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.66';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.66';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '3.66';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
require File::Spec::Unix;
use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
-$VERSION = '3.66';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
require Exporter;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.66';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.66';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
use strict;
use vars qw($VERSION);
-$VERSION = '3.66';
+$VERSION = '3.67';
my $xs_version = $VERSION;
$VERSION =~ tr/_//d;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.66';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.66';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);