Fix string escaping in JSON
authorDmitry Malikov <malikov.d.y@gmail.com>
Sat, 5 Aug 2017 14:28:40 +0000 (16:28 +0200)
committerBen Gamari <ben@smart-cactus.org>
Sun, 6 Aug 2017 23:39:17 +0000 (19:39 -0400)
It seems to that double quotes is not escaped well at the moment.

We'd noticed this with @alexbiehl during the work on https://github.com/haskell/haddock/pull/645

compiler/utils/Json.hs

index 1318ce2..ffbff50 100644 (file)
@@ -39,7 +39,7 @@ escapeJsonString = concatMap escapeChar
     escapeChar '\n' = "\\n"
     escapeChar '\r' = "\\r"
     escapeChar '\t' = "\\t"
     escapeChar '\n' = "\\n"
     escapeChar '\r' = "\\r"
     escapeChar '\t' = "\\t"
-    escapeChar '"'  = "\""
+    escapeChar '"'  = "\\\""
     escapeChar '\\'  = "\\\\"
     escapeChar c | isControl c || fromEnum c >= 0x7f  = uni_esc c
     escapeChar c = [c]
     escapeChar '\\'  = "\\\\"
     escapeChar c | isControl c || fromEnum c >= 0x7f  = uni_esc c
     escapeChar c = [c]