summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/suidmanager.rb10
-rw-r--r--lib/puppet/util.rb2
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/puppet/suidmanager.rb b/lib/puppet/suidmanager.rb
index 555543843..a431e1456 100644
--- a/lib/puppet/suidmanager.rb
+++ b/lib/puppet/suidmanager.rb
@@ -65,12 +65,20 @@ module Puppet
def asuser(new_euid=nil, new_egid=nil)
old_egid = old_euid = nil
if new_egid
- new_egid = Puppet::Util.uid(new_egid)
+ saved_state_egid = new_egid
+ new_egid = Puppet::Util.gid(new_egid)
+ if new_egid == nil
+ raise Puppet::Error, "Invalid group: %s" % saved_state_egid
+ end
old_egid = self.egid
self.egid = new_egid
end
if new_euid
+ saved_state_euid = new_euid
new_euid = Puppet::Util.uid(new_euid)
+ if new_euid == nil
+ raise Puppet::Error, "Invalid user: %s" % saved_state_euid
+ end
old_euid = self.euid
self.euid = new_euid
end
diff --git a/lib/puppet/util.rb b/lib/puppet/util.rb
index fea1e68a6..5f8d6f31a 100644
--- a/lib/puppet/util.rb
+++ b/lib/puppet/util.rb
@@ -107,7 +107,7 @@ module Util
end
gid = nil
obj = nil
-
+
# We want to look the group up either way
if group.is_a?(Integer)
# If this doesn't find anything