Skip to content

Commit 1321d58

Browse files
committed
(MODULES-1771) Don't modify input to is_domain_name()
Fix is_domain_name() so it dup's its incoming argument to avoid changing the original with a later chomp!
1 parent ad57272 commit 1321d58

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

lib/puppet/parser/functions/is_domain_name.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module Puppet::Parser::Functions
1313
"given #{arguments.size} for 1")
1414
end
1515

16-
domain = arguments[0]
16+
domain = arguments[0].dup
1717

1818
# Limits (rfc1035, 3.1)
1919
domain_max_length=255

spec/functions/is_domain_name_spec.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,11 @@
6161
result = scope.function_is_domain_name(["not valid"])
6262
expect(result).to(be_falsey)
6363
end
64+
65+
# Values obtained from Facter values will be frozen strings
66+
# in newer versions of Facter:
67+
it "should not throw an exception if passed a frozen string" do
68+
result = scope.function_is_domain_name(["my.domain.name".freeze])
69+
expect(result).to(be_truthy)
70+
end
6471
end

0 commit comments

Comments
 (0)