validate config file encoding when containing non-ascii characters

Fixes #1468
This commit is contained in:
wiibaa 2014-06-24 08:47:16 +02:00 committed by Jordan Sissel
parent 98abbafb3d
commit ea7db02836

View file

@ -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