Pārlūkot izejas kodu

report error when string end not found

Tao Wen 8 gadi atpakaļ
vecāks
revīzija
26708bccc9
2 mainītis faili ar 8 papildinājumiem un 0 dzēšanām
  1. 1 0
      feature_iter_string.go
  2. 7 0
      jsoniter_string_test.go

+ 1 - 0
feature_iter_string.go

@@ -92,6 +92,7 @@ func (iter *Iterator) readStringSlowPath() (ret string) {
 			str = append(str, c)
 		}
 	}
+	iter.reportError("ReadString", "unexpected end of input")
 	return
 }
 

+ 7 - 0
jsoniter_string_test.go

@@ -105,6 +105,13 @@ func Test_write_val_string(t *testing.T) {
 	should.Equal(`"hello"`, buf.String())
 }
 
+func Test_decode_slash(t *testing.T) {
+	should := require.New(t)
+	var obj interface{}
+	should.NotNil(json.Unmarshal([]byte(`"\"`), &obj))
+	should.NotNil(UnmarshalFromString(`"\"`, &obj))
+}
+
 func Benchmark_jsoniter_unicode(b *testing.B) {
 	for n := 0; n < b.N; n++ {
 		iter := ParseString(`"\ud83d\udc4a"`)