From ea7db028361955f3249768dbaec947dcdac6e1f5 Mon Sep 17 00:00:00 2001 From: wiibaa Date: Tue, 24 Jun 2014 08:47:16 +0200 Subject: [PATCH] validate config file encoding when containing non-ascii characters Fixes #1468 --- lib/logstash/agent.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/logstash/agent.rb b/lib/logstash/agent.rb index 82fc2aa46..1ab88556d 100644 --- a/lib/logstash/agent.rb +++ b/lib/logstash/agent.rb @@ -309,6 +309,7 @@ class LogStash::Agent < Clamp::Command end config = "" + encoding_issue_files = [] Dir.glob(path).sort.each do |file| next unless File.file?(file) if file.match(/~$/) @@ -316,7 +317,14 @@ class LogStash::Agent < Clamp::Command next end @logger.debug("Reading config file", :file => file) - config << File.read(file) + "\n" + cfg = File.read(file) + if !cfg.ascii_only? && !cfg.valid_encoding? + encoding_issue_files << file + end + config << cfg + "\n" + end + if (encoding_issue_files.any?) + fail("The following config files contains non-ascii characters but are not UTF-8 encoded #{encoding_issue_files}") end return config end # def load_config