]> gitweb.fluxo.info Git - puppet-stdlib.git/commitdiff
(MODULES-905) Narrow the confinement in bool2str
authorRyan McKern <ryan.mckern@puppetlabs.com>
Thu, 15 May 2014 22:01:14 +0000 (15:01 -0700)
committerRyan McKern <ryan.mckern@puppetlabs.com>
Thu, 15 May 2014 22:01:14 +0000 (15:01 -0700)
Previously, bool2str() accepted a broad array of boolean values and
bare strings, without any attempt to validate that the strings in any
way resembled "true" or "false" (or any of the other values bool2num()
accepts). This commit narrows the input confinement to TrueClass and
FalseClass, which means that bool2str() will only interpolate
strict boolean values now.

lib/puppet/parser/functions/bool2str.rb

index a97d356ab3225b42f773eb04e289676db22f524d..fcd379178683ac83e93a7facd80e8c5100d4c0ef 100644 (file)
@@ -5,7 +5,7 @@
 module Puppet::Parser::Functions
   newfunction(:bool2str, :type => :rvalue, :doc => <<-EOS
     Converts a boolean to a string.
-    Requires a single boolean or string as an input.
+    Requires a single boolean as an input.
     EOS
   ) do |arguments|
 
@@ -15,15 +15,12 @@ module Puppet::Parser::Functions
     value = arguments[0]
     klass = value.class
 
-    # We can have either true or false, or string which resembles boolean ...
-    unless [FalseClass, TrueClass, String].include?(klass)
-      raise(Puppet::ParseError, 'bool2str(): Requires either ' +
-        'boolean or string to work with')
+    # We can have either true or false, and nothing else
+    unless [FalseClass, TrueClass].include?(klass)
+      raise(Puppet::ParseError, 'bool2str(): Requires a boolean to work with')
     end
 
-    result = value.is_a?(String) ? value : value.to_s
-
-    return result
+    return value.to_s
   end
 end