]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/escape: do not escape / in json
authorSage Weil <sage@redhat.com>
Fri, 24 Mar 2017 16:00:04 +0000 (12:00 -0400)
committerSage Weil <sage@redhat.com>
Fri, 24 Mar 2017 16:14:15 +0000 (12:14 -0400)
As far as I can tell '/' is perfectly valid for JSON
strings (keys or values).

Signed-off-by: Sage Weil <sage@redhat.com>
src/common/escape.c
src/test/escape.cc

index 7eb851a169f71828ac59ca24cce3e427c77bfb59..ce6309aa16925aab29c28c7bc0c9aa770a36cfb5 100644 (file)
@@ -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));
index 125669abc4086f88b472a35204a3b83b9e9909d3..310897467f42a2b01e680deaa40f7a380410ae79 100644 (file)
@@ -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"),