summaryrefslogtreecommitdiff
path: root/lib/puppet/parser/functions/fqdn_rotate.rb
diff options
context:
space:
mode:
authorEli Young <elyscape@gmail.com>2015-05-28 18:15:05 -0700
committerEli Young <elyscape@gmail.com>2015-06-01 16:19:07 -0700
commit601f681787c8d6c02bb3566b8cefde289377be0e (patch)
tree1f6ce54256909aafc643bf89ee2b203a58e70d80 /lib/puppet/parser/functions/fqdn_rotate.rb
parenta383705fdb133978e53503b7e01012367fac139d (diff)
fqdn_rotate: Don't use the value itself as part of the random seed
Previously, the random number generator was seeded with the array or string to be rotated in addition to any values specifically provided for seeding. This behavior is potentially insecure in that it allows an attacker who can modify the source data to choose the post-shuffle order.
Diffstat (limited to 'lib/puppet/parser/functions/fqdn_rotate.rb')
-rw-r--r--lib/puppet/parser/functions/fqdn_rotate.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/puppet/parser/functions/fqdn_rotate.rb b/lib/puppet/parser/functions/fqdn_rotate.rb
index d9741a0..e1a50e6 100644
--- a/lib/puppet/parser/functions/fqdn_rotate.rb
+++ b/lib/puppet/parser/functions/fqdn_rotate.rb
@@ -11,7 +11,7 @@ Rotates an array a random number of times based on a nodes fqdn.
raise(Puppet::ParseError, "fqdn_rotate(): Wrong number of arguments " +
"given (#{arguments.size} for 1)") if arguments.size < 1
- value = arguments[0]
+ value = arguments.shift
require 'digest/md5'
unless value.is_a?(Array) || value.is_a?(String)