on master help sign in
Tighten up the top-level json parser to be safer
commit5c1fd3d1eef9fb81ba6737c85d233788cdf512ac authorBryan O'Sullivan <bos@mailrank.com> dateTue 24 May 2011, 16:16 (15 years ago) parent018ff4c
1 file changed+4−5
Data/Aeson/Parser.hs+4−5
Data/Aeson/Parser.hs+4−5
@@ -40,11 +40,10 @@ import qualified Data.ByteString.Unsafe as B
4040-- an array.
4141json :: Parser Value
4242json = do
43− c <- skipSpace *> anyChar
44− case c of
45− '{' -> object_
46− '[' -> array_
47− _ -> fail "root value is not an object or array"
43+ c <- skipSpace *> satisfy (`B8.elem` "{[")
44+ if c == '{'
45+ then object_
46+ else array_
4847
4948object_ :: Parser Value
5049object_ = {-# SCC "object_" #-} do