Avoid infinite recursion in File::Path::_rmtree on VMS when there
Craig A. Berry [Fri, 31 Aug 2007 14:14:52 +0000 (14:14 +0000)]
is a file present with a single dot as the name.  Reported by
John Malmberg in <46D79A90.50405@qsl.net>.

p4raw-id: //depot/perl@31775

lib/File/Path.pm

index 37ec8ea..3857fd4 100644 (file)
@@ -572,8 +572,11 @@ sub _rmtree {
 
            # Deleting large numbers of files from VMS Files-11 filesystems
            # is faster if done in reverse ASCIIbetical order 
-           @files = reverse @files if $Is_VMS;
-           ($root = VMS::Filespec::unixify($root)) =~ s#\.dir\z## if $Is_VMS;
+           if ($Is_VMS) {
+               @files = reverse @files;
+               ($root = VMS::Filespec::unixify($root)) =~ s#\.dir\z##;
+               @files = map( $_ eq '.' ? '.;' : $_, @files );
+           }
            if ($Is_MacOS) {
                @files = map("$root$_", @files);
            }