diff options
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/suidmanager.rb | 10 | ||||
-rw-r--r-- | lib/puppet/util.rb | 2 |
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 |