From 83a219ba8091d9ff5abe5addd8e75e573612b516 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Fri, 28 Dec 2012 06:43:35 -0800 Subject: [PATCH] more specific guarding in string fsm --- src/jsx_decoder.erl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/jsx_decoder.erl b/src/jsx_decoder.erl index 9870db9..96619ff 100644 --- a/src/jsx_decoder.erl +++ b/src/jsx_decoder.erl @@ -491,9 +491,11 @@ string(<<126, Rest/binary>>, Handler, [Acc|Stack], Opts) -> string(Rest, Handler, [?acc_seq(Acc, 126)|Stack], Opts); string(<<127, Rest/binary>>, Handler, [Acc|Stack], Opts) -> string(Rest, Handler, [?acc_seq(Acc, 127)|Stack], Opts); +string(<>, Handler, [Acc|Stack], Opts) when X >= 16#20, X < 16#2028 -> + string(Rest, Handler, [?acc_seq(Acc, X)|Stack], Opts); string(<>, Handler, [Acc|Stack], Opts) when X == 16#2028; X == 16#2029 -> string(Rest, Handler, [?acc_seq(Acc, maybe_replace(X, Opts))|Stack], Opts); -string(<>, Handler, [Acc|Stack], Opts) when X >= 16#20, X < 16#d800 -> +string(<>, Handler, [Acc|Stack], Opts) when X > 16#2029, X < 16#d800 -> string(Rest, Handler, [?acc_seq(Acc, X)|Stack], Opts); string(<>, Handler, [Acc|Stack], Opts) when X > 16#dfff, X < 16#fdd0 -> string(Rest, Handler, [?acc_seq(Acc, X)|Stack], Opts);