summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorMarkus Roberts <Markus@reality.com>2009-10-19 09:34:40 -0700
committerJames Turnbull <james@lovedthanlost.net>2009-10-25 11:15:58 +1100
commitf47a70f46baa8b3c71c7e23471827a43abbbe598 (patch)
tree5d2fe62a1c447801abbc9b6e28fe9dd730e69ef2 /lib/puppet
parentb6e4ef37f7ac4844697f1857cbcf03a2796db7d4 (diff)
downloadpuppet-f47a70f46baa8b3c71c7e23471827a43abbbe598.tar.gz
puppet-f47a70f46baa8b3c71c7e23471827a43abbbe598.tar.xz
puppet-f47a70f46baa8b3c71c7e23471827a43abbbe598.zip
Ticket #2665: Regexp exception on ++ in package names
This affects several providers: dpkg, rug, up2date, urpmi Fixed by escaping the package names with Regexp.escape Patch by Jesse Wolf Signed-off-by: Markus Roberts <Markus@reality.com>
Diffstat (limited to 'lib/puppet')
-rwxr-xr-xlib/puppet/provider/package/dpkg.rb2
-rw-r--r--lib/puppet/provider/package/rug.rb2
-rw-r--r--lib/puppet/provider/package/up2date.rb2
-rw-r--r--lib/puppet/provider/package/urpmi.rb2
4 files changed, 4 insertions, 4 deletions
diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb
index a4c398282..d6ec56ad4 100755
--- a/lib/puppet/provider/package/dpkg.rb
+++ b/lib/puppet/provider/package/dpkg.rb
@@ -83,7 +83,7 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package
def latest
output = dpkg_deb "--show", @resource[:source]
matches = /^(\S+)\t(\S+)$/.match(output).captures
- unless matches[0].match(@resource[:name])
+ unless matches[0].match( Regexp.escape(@resource[:name]) )
warning "source doesn't contain named package, but %s" % matches[0]
end
matches[1]
diff --git a/lib/puppet/provider/package/rug.rb b/lib/puppet/provider/package/rug.rb
index b68ec30c5..ca27cbbd3 100644
--- a/lib/puppet/provider/package/rug.rb
+++ b/lib/puppet/provider/package/rug.rb
@@ -36,7 +36,7 @@ Puppet::Type.type(:package).provide :rug, :parent => :rpm do
#rug can only get a list of *all* available packages?
output = rug "list-updates"
- if output =~ /#{@resource[:name]}\s*\|\s*([0-9\.\-]+)/
+ if output =~ /#{Regexp.escape @resource[:name]}\s*\|\s*([0-9\.\-]+)/
return $1
else
# rug didn't find updates, pretend the current
diff --git a/lib/puppet/provider/package/up2date.rb b/lib/puppet/provider/package/up2date.rb
index d8a12652f..284bbaf42 100644
--- a/lib/puppet/provider/package/up2date.rb
+++ b/lib/puppet/provider/package/up2date.rb
@@ -25,7 +25,7 @@ Puppet::Type.type(:package).provide :up2date, :parent => :rpm, :source => :rpm d
#up2date can only get a list of *all* available packages?
output = up2date "--showall"
- if output =~ /^#{@resource[:name]}-(\d+.*)\.\w+/
+ if output =~ /^#{Regexp.escape @resource[:name]}-(\d+.*)\.\w+/
return $1
else
# up2date didn't find updates, pretend the current
diff --git a/lib/puppet/provider/package/urpmi.rb b/lib/puppet/provider/package/urpmi.rb
index a95835284..a79e96227 100644
--- a/lib/puppet/provider/package/urpmi.rb
+++ b/lib/puppet/provider/package/urpmi.rb
@@ -43,7 +43,7 @@ Puppet::Type.type(:package).provide :urpmi, :parent => :rpm, :source => :rpm do
def latest
output = urpmq "-S", @resource[:name]
- if output =~ /^#{@resource[:name]}\s+:\s+.*\(\s+(\S+)\s+\)/
+ if output =~ /^#{Regexp.escape @resource[:name]}\s+:\s+.*\(\s+(\S+)\s+\)/
return $1
else
# urpmi didn't find updates, pretend the current