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)