summaryrefslogtreecommitdiff
path: root/src/main/scala/spray/json/JsonParser.scala
diff options
context:
space:
mode:
authorJohannes Rudolph <johannes.rudolph@gmail.com>2018-11-07 15:05:18 +0100
committerGitHub <noreply@github.com>2018-11-07 15:05:18 +0100
commitc8e106fe41dad3916d54dcbf90e3aa5599d4d461 (patch)
treeb8bdb65baeb3dc969ee66b6652c24d23d143f11b /src/main/scala/spray/json/JsonParser.scala
parentddb4e1e7c0e28f06f703dd5e325b59fd0548bd97 (diff)
parent855b35e6d65079085d580ab3063637d94c8f3e0a (diff)
downloadspray-json-c8e106fe41dad3916d54dcbf90e3aa5599d4d461.tar.gz
spray-json-c8e106fe41dad3916d54dcbf90e3aa5599d4d461.tar.bz2
spray-json-c8e106fe41dad3916d54dcbf90e3aa5599d4d461.zip
Merge pull request #280 from jrudolph/use-TreeMap-fixes-277
CVE-2018-18854 Use TreeMap instead of HashMap for JsObject key/value pairs, fixes #277
Diffstat (limited to 'src/main/scala/spray/json/JsonParser.scala')
-rw-r--r--src/main/scala/spray/json/JsonParser.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/main/scala/spray/json/JsonParser.scala b/src/main/scala/spray/json/JsonParser.scala
index f29c062..ded8d6a 100644
--- a/src/main/scala/spray/json/JsonParser.scala
+++ b/src/main/scala/spray/json/JsonParser.scala
@@ -18,9 +18,11 @@ package spray.json
import scala.annotation.{switch, tailrec}
import java.lang.{StringBuilder => JStringBuilder}
-import java.nio.{CharBuffer, ByteBuffer}
+import java.nio.{ByteBuffer, CharBuffer}
import java.nio.charset.Charset
+import scala.collection.immutable.TreeMap
+
/**
* Fast, no-dependency parser for JSON as defined by http://tools.ietf.org/html/rfc4627.
*/
@@ -89,8 +91,7 @@ class JsonParser(input: ParserInput, settings: JsonParserSettings = JsonParserSe
val nextMap = map.updated(key, jsValue)
if (ws(',')) members(nextMap) else nextMap
}
- var map = Map.empty[String, JsValue]
- map = members(map)
+ val map = members(TreeMap.empty[String, JsValue])
require('}')
JsObject(map)
} else {