From: Sage Weil Date: Fri, 24 Mar 2017 16:00:04 +0000 (-0400) Subject: common/escape: do not escape / in json X-Git-Tag: v12.0.2~144^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6fc4ed3ee4a43b9c787528626816628a6400aef3;p=ceph.git common/escape: do not escape / in json As far as I can tell '/' is perfectly valid for JSON strings (keys or values). Signed-off-by: Sage Weil --- diff --git a/src/common/escape.c b/src/common/escape.c index 7eb851a169f7..ce6309aa1692 100644 --- a/src/common/escape.c +++ b/src/common/escape.c @@ -119,7 +119,6 @@ void escape_xml_attr(const char *buf, char *out) #define DBL_QUOTE_JESCAPE "\\\"" #define BACKSLASH_JESCAPE "\\\\" -#define SLASH_JESCAPE "\\/" #define TAB_JESCAPE "\\t" #define NEWLINE_JESCAPE "\\n" @@ -137,9 +136,6 @@ int escape_json_attr_len(const char *buf, int src_len) case '\\': ret += SSTRL(BACKSLASH_JESCAPE); break; - case '/': - ret += SSTRL(SLASH_JESCAPE); - break; case '\t': ret += SSTRL(TAB_JESCAPE); break; @@ -179,11 +175,6 @@ void escape_json_attr(const char *buf, int src_len, char *out) memcpy(o, BACKSLASH_JESCAPE, SSTRL(BACKSLASH_JESCAPE)); o += SSTRL(BACKSLASH_JESCAPE); break; - case '/': - // cppcheck-suppress sizeofDivisionMemfunc - memcpy(o, SLASH_JESCAPE, SSTRL(SLASH_JESCAPE)); - o += SSTRL(SLASH_JESCAPE); - break; case '\t': // cppcheck-suppress sizeofDivisionMemfunc memcpy(o, TAB_JESCAPE, SSTRL(TAB_JESCAPE)); diff --git a/src/test/escape.cc b/src/test/escape.cc index 125669abc408..310897467f42 100644 --- a/src/test/escape.cc +++ b/src/test/escape.cc @@ -73,9 +73,6 @@ TEST(EscapeJson, Escapes1) { ASSERT_EQ(escape_json_attrs("The \"scare quotes\""), "The \\\"scare quotes\\\""); ASSERT_EQ(escape_json_attrs("I <3 JSON"), "I <3 JSON"); - ASSERT_EQ(escape_json_attrs( - "JSON calls a slash / backslash a solidus / reverse solidus"), - "JSON calls a slash \\/ backslash a solidus \\/ reverse solidus"); ASSERT_EQ(escape_json_attrs("Some 'single' \"quotes\" here"), "Some 'single' \\\"quotes\\\" here"); ASSERT_EQ(escape_json_attrs("tabs\tand\tnewlines\n, oh my"),