From 9e788e7f2a5b28748b6e55d9444a7e0428461145 Mon Sep 17 00:00:00 2001 From: Kouhei Sutou Date: Mon, 4 Aug 2014 21:37:04 +0900 Subject: [PATCH] logger: replace invalid and undefined characters in encode error message [shocker-ja:1228] Reported by OBATA Akio. Thanks!!! --- lib/rabbit/logger/stderr.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/rabbit/logger/stderr.rb b/lib/rabbit/logger/stderr.rb index b5081ab..f2bf450 100644 --- a/lib/rabbit/logger/stderr.rb +++ b/lib/rabbit/logger/stderr.rb @@ -13,7 +13,10 @@ def do_log(severity, prog_name, message) message = message.encode("locale") rescue EncodingError format = _("can't convert to current locale from UTF-8: %s") - $stderr.puts(format % message.encode(format.encoding)) + sanitized_message = message.encode(format.encoding, + :invalid => :replace, + :undef => :replace) + $stderr.puts(format % sanitized_message) end $stderr.puts(format_severity(severity)) $stderr.print("[#{prog_name}]: ") if prog_name