From b0e11ebb1c5eacfad8e43da8396ea0e4dfdbdc4b Mon Sep 17 00:00:00 2001 From: jwilson Date: Thu, 20 Oct 2016 21:32:58 -0400 Subject: [PATCH] Don't reject escaped forward slashes. Closes: https://github.com/square/moshi/issues/209 --- .../java/com/squareup/moshi/BufferedSourceJsonReader.java | 1 + .../com/squareup/moshi/BufferedSourceJsonReaderTest.java | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/moshi/src/main/java/com/squareup/moshi/BufferedSourceJsonReader.java b/moshi/src/main/java/com/squareup/moshi/BufferedSourceJsonReader.java index 1e19383..f31bdda 100644 --- a/moshi/src/main/java/com/squareup/moshi/BufferedSourceJsonReader.java +++ b/moshi/src/main/java/com/squareup/moshi/BufferedSourceJsonReader.java @@ -1073,6 +1073,7 @@ final class BufferedSourceJsonReader extends JsonReader { case '\'': case '"': case '\\': + case '/': return (char) escaped; default: diff --git a/moshi/src/test/java/com/squareup/moshi/BufferedSourceJsonReaderTest.java b/moshi/src/test/java/com/squareup/moshi/BufferedSourceJsonReaderTest.java index 1174795..8927e42 100644 --- a/moshi/src/test/java/com/squareup/moshi/BufferedSourceJsonReaderTest.java +++ b/moshi/src/test/java/com/squareup/moshi/BufferedSourceJsonReaderTest.java @@ -1804,6 +1804,12 @@ public final class BufferedSourceJsonReaderTest { } } + @Test public void validEscapes() throws IOException { + JsonReader reader = newReader("[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]"); + reader.beginArray(); + assertThat(reader.nextString()).isEqualTo("\"\\/\b\f\n\r\t"); + } + @Test public void invalidEscape() throws IOException { JsonReader reader = newReader("[\"str\\ing\"]"); reader.beginArray();