@@ -202,7 +202,7 @@ struct json_object *json_tokener_parse_verbose(const char *str, enum json_tokene | |||||
*/ | */ | ||||
|| json_tokener_get_parse_end(tok) != strlen(str) | || json_tokener_get_parse_end(tok) != strlen(str) | ||||
#endif | #endif | ||||
) | |||||
) | |||||
{ | { | ||||
if (obj != NULL) | if (obj != NULL) | ||||
@@ -874,13 +874,10 @@ struct json_object *json_tokener_parse_ex(struct json_tokener *tok, const char * | |||||
} | } | ||||
} | } | ||||
while (c && | |||||
((c >= '0' && c <= '9') || | |||||
(!is_exponent && (c=='e' || c=='E')) || | |||||
(neg_sign_ok && c=='-') || | |||||
(pos_sign_ok && c=='+') || | |||||
(!tok->is_double && c=='.') | |||||
)) | |||||
while (c && ((c >= '0' && c <= '9') || | |||||
(!is_exponent && (c == 'e' || c == 'E')) || | |||||
(neg_sign_ok && c == '-') || (pos_sign_ok && c == '+') || | |||||
(!tok->is_double && c == '.'))) | |||||
{ | { | ||||
pos_sign_ok = neg_sign_ok = 0; | pos_sign_ok = neg_sign_ok = 0; | ||||
++case_len; | ++case_len; | ||||
@@ -922,10 +919,8 @@ struct json_object *json_tokener_parse_ex(struct json_tokener *tok, const char * | |||||
because c can be part of a new object to parse on the | because c can be part of a new object to parse on the | ||||
next call to json_tokener_parse(). | next call to json_tokener_parse(). | ||||
*/ | */ | ||||
if (tok->depth > 0 && | |||||
c != ',' && c != ']' && c != '}' && c != '/' && | |||||
c != 'I' && c != 'i' && | |||||
!isspace((unsigned char)c)) | |||||
if (tok->depth > 0 && c != ',' && c != ']' && c != '}' && c != '/' && | |||||
c != 'I' && c != 'i' && !isspace((unsigned char)c)) | |||||
{ | { | ||||
tok->err = json_tokener_error_parse_number; | tok->err = json_tokener_error_parse_number; | ||||
goto out; | goto out; | ||||
@@ -371,7 +371,7 @@ struct incremental_step | |||||
{"[0e-]", -1, -1, json_tokener_success, 1}, | {"[0e-]", -1, -1, json_tokener_success, 1}, | ||||
{"[0e-]", -1, 4, json_tokener_error_parse_number, 1, JSON_TOKENER_STRICT}, | {"[0e-]", -1, 4, json_tokener_error_parse_number, 1, JSON_TOKENER_STRICT}, | ||||
/* You might expect this to fail, but it won't because | |||||
/* You might expect this to fail, but it won't because | |||||
it's a valid partial parse; note the char_offset: */ | it's a valid partial parse; note the char_offset: */ | ||||
{"0e+-", 5, 3, json_tokener_success, 1}, | {"0e+-", 5, 3, json_tokener_success, 1}, | ||||
{"0e+-", 5, 3, json_tokener_error_parse_number, 1, JSON_TOKENER_STRICT}, | {"0e+-", 5, 3, json_tokener_error_parse_number, 1, JSON_TOKENER_STRICT}, | ||||
@@ -453,7 +453,7 @@ struct incremental_step | |||||
{"{\"a\":1}{\"b\":2}", 15, 7, json_tokener_success, 0}, | {"{\"a\":1}{\"b\":2}", 15, 7, json_tokener_success, 0}, | ||||
{&"{\"a\":1}{\"b\":2}"[7], 8, 7, json_tokener_success, 1}, | {&"{\"a\":1}{\"b\":2}"[7], 8, 7, json_tokener_success, 1}, | ||||
/* | |||||
/* | |||||
* Though this may seem invalid at first glance, it | * Though this may seem invalid at first glance, it | ||||
* parses as three separate numbers, 2015, -1 and -15 | * parses as three separate numbers, 2015, -1 and -15 | ||||
* Of course, simply pasting together a stream of arbitrary | * Of course, simply pasting together a stream of arbitrary | ||||