diff options
author | Nigel Kersten <nigelk@google.com> | 2009-07-24 17:23:00 -0700 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2009-07-29 07:41:54 +1000 |
commit | 9825bec3ad612eb3ec980cbae3a80f611b4a70a0 (patch) | |
tree | b3233df857edf6645e9c202b24a2f2e764560a5c | |
parent | 450a19c405810358684a47b87ef9eca26589b95f (diff) | |
download | puppet-9825bec3ad612eb3ec980cbae3a80f611b4a70a0.tar.gz puppet-9825bec3ad612eb3ec980cbae3a80f611b4a70a0.tar.xz puppet-9825bec3ad612eb3ec980cbae3a80f611b4a70a0.zip |
Fixes #2362. Do not validate users/groups when supplied with numeric uid/gids
-rwxr-xr-x | lib/puppet/type/file/group.rb | 6 | ||||
-rwxr-xr-x | lib/puppet/type/file/owner.rb | 6 | ||||
-rwxr-xr-x | spec/unit/type/file/group.rb | 5 | ||||
-rwxr-xr-x | spec/unit/type/file/owner.rb | 5 |
4 files changed, 22 insertions, 0 deletions
diff --git a/lib/puppet/type/file/group.rb b/lib/puppet/type/file/group.rb index 3aeac21ff..e3d7b4ec6 100755 --- a/lib/puppet/type/file/group.rb +++ b/lib/puppet/type/file/group.rb @@ -79,6 +79,12 @@ module Puppet # Determine if the group is valid, and if so, return the GID def validgroup?(value) + begin + number = Integer(value) + return number + rescue ArgumentError + number = nil + end if number = gid(value) return number else diff --git a/lib/puppet/type/file/owner.rb b/lib/puppet/type/file/owner.rb index 15a34a696..1dff59cb3 100755 --- a/lib/puppet/type/file/owner.rb +++ b/lib/puppet/type/file/owner.rb @@ -49,6 +49,12 @@ module Puppet # Determine if the user is valid, and if so, return the UID def validuser?(value) + begin + number = Integer(value) + return number + rescue ArgumentError + number = nil + end if number = uid(value) return number else diff --git a/spec/unit/type/file/group.rb b/spec/unit/type/file/group.rb index 856b05b0d..93d09adb4 100755 --- a/spec/unit/type/file/group.rb +++ b/spec/unit/type/file/group.rb @@ -70,6 +70,11 @@ describe property do @group.must be_insync(10) end + + it "should not validate that groups exist when a group is specified as an integer" do + @group.expects(:gid).never + @group.validgroup?(10) + end it "should fail if it cannot convert a group name to an integer" do @group.expects(:gid).with("foo").returns nil diff --git a/spec/unit/type/file/owner.rb b/spec/unit/type/file/owner.rb index 743e64054..1ea01cbc7 100755 --- a/spec/unit/type/file/owner.rb +++ b/spec/unit/type/file/owner.rb @@ -83,6 +83,11 @@ describe property do @owner.must be_insync(10) end + + it "should not validate that users exist when a user is specified as an integer" do + @owner.expects(:uid).never + @owner.validuser?(10) + end it "should fail if it cannot convert an owner name to an integer" do @owner.expects(:uid).with("foo").returns nil |