|
|
|
@ -180,6 +180,13 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) { |
|
|
|
|
case GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL: |
|
|
|
|
case GRPC_JSON_STATE_VALUE_NUMBER_ZERO: |
|
|
|
|
case GRPC_JSON_STATE_VALUE_NUMBER_EPM: |
|
|
|
|
if (reader->depth == 0) { |
|
|
|
|
return GRPC_JSON_PARSE_ERROR; |
|
|
|
|
} else if ((c == '}') && !reader->in_object) { |
|
|
|
|
return GRPC_JSON_PARSE_ERROR; |
|
|
|
|
} else if ((c == ']') && !reader->in_array) { |
|
|
|
|
return GRPC_JSON_PARSE_ERROR; |
|
|
|
|
} |
|
|
|
|
success = (uint32_t)json_reader_set_number(reader); |
|
|
|
|
if (!success) return GRPC_JSON_PARSE_ERROR; |
|
|
|
|
json_reader_string_clear(reader); |
|
|
|
|