From 426938cc8acdfce0970acb63fc7b44e1931c4455 Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 14 Jul 2020 19:51:06 +0800 Subject: [PATCH] JSON: Filter string filed with special char --- trunk/src/protocol/srs_protocol_json.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/trunk/src/protocol/srs_protocol_json.cpp b/trunk/src/protocol/srs_protocol_json.cpp index c742bb158..0d0e1aea5 100644 --- a/trunk/src/protocol/srs_protocol_json.cpp +++ b/trunk/src/protocol/srs_protocol_json.cpp @@ -1572,11 +1572,25 @@ SrsJsonArray* SrsJsonAny::to_array() return p; } +string escape(string v) +{ + stringstream ss; + + for (int i = 0; i < v.length(); i++) { + if (v.at(i) == '"') { + ss << '\\'; + } + ss << v.at(i); + } + + return ss.str(); +} + string SrsJsonAny::dumps() { switch (marker) { case SRS_JSON_String: { - return "\"" + to_str() + "\""; + return "\"" + escape(to_str()) + "\""; } case SRS_JSON_Boolean: { return to_boolean()? "true" : "false";