summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Young <elyscape@gmail.com>2015-05-05 15:16:35 -0700
committerEli Young <elyscape@gmail.com>2015-05-05 15:53:34 -0700
commit7d7e905b543448f5d37d13c9e1a03d1e0be307fe (patch)
tree433fdf817e8fb29dcaf42a90666aa5a499bbd15a
parent7181e4ebcaf59cb16e7166aa254cbb637590423a (diff)
downloadpuppet-stdlib-7d7e905b543448f5d37d13c9e1a03d1e0be307fe.tar.gz
puppet-stdlib-7d7e905b543448f5d37d13c9e1a03d1e0be307fe.tar.bz2
pw_hash: Fix functionality on JRuby < 1.7.17
The previous change to this function broke it on JRuby before 1.7.17 by attempting to use a variable that wasn't defined (`salt`). To fix this, define `salt` ahead of time and use that instead of building the salt later. cf. https://github.com/puppetlabs/puppetlabs-stdlib/pull/443#discussion_r29718588
-rw-r--r--lib/puppet/parser/functions/pw_hash.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/puppet/parser/functions/pw_hash.rb b/lib/puppet/parser/functions/pw_hash.rb
index 4682a63..41d4223 100644
--- a/lib/puppet/parser/functions/pw_hash.rb
+++ b/lib/puppet/parser/functions/pw_hash.rb
@@ -38,6 +38,8 @@ Puppet::Parser::Functions::newfunction(
password = args[0]
return nil if password.nil? or password.empty?
+ salt = "$#{hash_type}$#{args[2]}"
+
# handle weak implementations of String#crypt
if 'test'.crypt('$1$1') != '$1$1$Bp8CU9Oujr9SSEw53WV6G.'
# JRuby < 1.7.17
@@ -49,6 +51,6 @@ Puppet::Parser::Functions::newfunction(
raise Puppet::ParseError, 'system does not support enhanced salts'
end
else
- password.crypt("$#{hash_type}$#{args[2]}")
+ password.crypt(salt)
end
end