summaryrefslogtreecommitdiffstats
path: root/lib/puppet/file_serving
diff options
context:
space:
mode:
authorJosh Cooper <josh@puppetlabs.com>2011-07-18 22:44:10 -0700
committerJacob Helwig <jacob@puppetlabs.com>2011-08-19 13:48:29 -0700
commitbfeb33734358528209221be09b97ffc8513d3f87 (patch)
tree3d5de01cb25e8deeecaa18605b8af7249f6ebb2f /lib/puppet/file_serving
parentfe81decc5336a540ba9e65e0da48f5a5e3b52274 (diff)
downloadpuppet-bfeb33734358528209221be09b97ffc8513d3f87.tar.gz
puppet-bfeb33734358528209221be09b97ffc8513d3f87.tar.xz
puppet-bfeb33734358528209221be09b97ffc8513d3f87.zip
(#8268) Require windows drive letters in absolute file paths
When testing whether a file path is absolute, the regexp was only handling POSIX style file paths. This commit requires Windows style file paths to start with a drive letter. A future commit will refacter the various places we do path validation to support both Windows drive letters and UNC paths. Reviewed-by: Jacob Helwig <jacob@puppetlabs.com> (cherry picked from commit 45ae5b4a9ced26dfcd3e324391f9a26cb02bf93d)
Diffstat (limited to 'lib/puppet/file_serving')
-rw-r--r--lib/puppet/file_serving/fileset.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/puppet/file_serving/fileset.rb b/lib/puppet/file_serving/fileset.rb
index 30fad8d1f..8bc5e256d 100644
--- a/lib/puppet/file_serving/fileset.rb
+++ b/lib/puppet/file_serving/fileset.rb
@@ -55,8 +55,13 @@ class Puppet::FileServing::Fileset
end
def initialize(path, options = {})
- path = path.chomp(File::SEPARATOR) unless path == File::SEPARATOR
- raise ArgumentError.new("Fileset paths must be fully qualified") unless File.expand_path(path) == path
+ if Puppet.features.microsoft_windows?
+ # REMIND: UNC path
+ path = path.chomp(File::SEPARATOR) unless path =~ /^[A-Za-z]:\/$/
+ else
+ path = path.chomp(File::SEPARATOR) unless path == File::SEPARATOR
+ end
+ raise ArgumentError.new("Fileset paths must be fully qualified: #{path}") unless File.expand_path(path) == path
@path = path