From fe2088739f37aac3a9621e848dac592145267b4a Mon Sep 17 00:00:00 2001 From: Andrey Bashlakov Date: Tue, 20 Aug 2019 19:21:56 +0300 Subject: [PATCH] fix json escaping --- src/core/osutils.cc | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/core/osutils.cc b/src/core/osutils.cc index f023a465..f4a80137 100644 --- a/src/core/osutils.cc +++ b/src/core/osutils.cc @@ -501,6 +501,7 @@ string escapeJSON(const string & s) string result = ""; for (unsigned int i = 0; i < s.length(); i++) + { switch (s[i]) { case '\r': @@ -515,8 +516,21 @@ string escapeJSON(const string & s) case '"': result += "\\\""; break; - default: - result += s[i]; + case '\b': + result += "\\b"; + break; + case '\f': + result += "\\f"; + break; + case '\\': + result += "\\\\"; + break; + default: + { + if (32 <= s[i] && s[i] < 127) + result += s[i]; + } + } } return result;