@@ -535,7 +535,7 @@ struct incremental_step
535535 {"{\"a\":}" , -1 , 5 , json_tokener_error_parse_unexpected , 1 , 0 },
536536 {"{\"a\":1,\"a\":2}" , -1 , -1 , json_tokener_success , 1 , 0 },
537537 {"\"a\":1}" , -1 , 3 , json_tokener_success , 1 , 0 },
538- {"{\"a\":1" , -1 , -1 , json_tokener_continue , 1 , 0 },
538+ {"{\"a\":1" , -1 , -1 , json_tokener_continue , 1 , 0 }, //}
539539 {"[,]" , -1 , 1 , json_tokener_error_parse_unexpected , 1 , 0 },
540540 {"[,1]" , -1 , 1 , json_tokener_error_parse_unexpected , 1 , 0 },
541541
@@ -595,6 +595,44 @@ struct incremental_step
595595 {"\x7b\x22\x31\x81\x22\x3a\x31\x7d" , -1 , 3 , json_tokener_error_parse_utf8_string , 1 ,
596596 JSON_TOKENER_VALIDATE_UTF8 },
597597
598+ // Note, current asciiz APIs can't parse \x00, skip it
599+ { "\"0\x01\x02\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" \
600+ "\x10\x11\x12\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\"" ,
601+ -1 , -1 , json_tokener_success , 1 , 0 },
602+
603+ // Test control chars again, this time in strict mode, which should fail
604+ { "\"\x01\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
605+ { "\"\x02\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
606+ { "\"\x03\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
607+ { "\"\x04\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
608+ { "\"\x05\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
609+ { "\"\x06\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
610+ { "\"\x07\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
611+ { "\"\x08\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
612+ { "\"\x09\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
613+ { "\"\x0a\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
614+ { "\"\x0b\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
615+ { "\"\x0c\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
616+ { "\"\x0d\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
617+ { "\"\x0e\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
618+ { "\"\x0f\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
619+ { "\"\x10\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
620+ { "\"\x11\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
621+ { "\"\x12\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
622+ { "\"\x13\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
623+ { "\"\x14\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
624+ { "\"\x15\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
625+ { "\"\x16\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
626+ { "\"\x17\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
627+ { "\"\x18\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
628+ { "\"\x19\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
629+ { "\"\x1a\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
630+ { "\"\x1b\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
631+ { "\"\x1c\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
632+ { "\"\x1d\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
633+ { "\"\x1e\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
634+ { "\"\x1f\"" , -1 , 1 , json_tokener_error_parse_string , 1 , JSON_TOKENER_STRICT },
635+
598636 {NULL , -1 , -1 , json_tokener_success , 0 , 0 },
599637};
600638
0 commit comments