lib/facter/framework/parsers/query_parser.rb in facter-4.4.0 vs lib/facter/framework/parsers/query_parser.rb in facter-4.4.1
- old
+ new
@@ -83,10 +83,11 @@
processed_equery_fact = query_fact.gsub('\\', '\\\\\\\\')
return false if fact_with_wildcard && !query_fact.match("^#{fact_name}$")
- return false unless fact_with_wildcard || fact_name.match("^#{processed_equery_fact}($|\\.)")
+ # Must escape metacharacters (like dots) to ensure the correct fact is found
+ return false unless fact_with_wildcard || fact_name.match("^#{Regexp.escape(processed_equery_fact)}($|\\.)")
true
end
def construct_loaded_fact(query_tokens, loaded_fact)