|
|
@ -262,7 +262,6 @@ class TextFormat::Parser::ParserImpl { |
|
|
|
allow_unknown_enum_(allow_unknown_enum), |
|
|
|
allow_unknown_enum_(allow_unknown_enum), |
|
|
|
allow_field_number_(allow_field_number), |
|
|
|
allow_field_number_(allow_field_number), |
|
|
|
allow_partial_(allow_partial), |
|
|
|
allow_partial_(allow_partial), |
|
|
|
recursion_budget_(io::CodedInputStream::GetDefaultRecursionLimit()), |
|
|
|
|
|
|
|
had_errors_(false) { |
|
|
|
had_errors_(false) { |
|
|
|
// For backwards-compatibility with proto1, we need to allow the 'f' suffix
|
|
|
|
// For backwards-compatibility with proto1, we need to allow the 'f' suffix
|
|
|
|
// for floats.
|
|
|
|
// for floats.
|
|
|
@ -632,10 +631,6 @@ label_skip_parsing: |
|
|
|
bool ConsumeFieldMessage(Message* message, |
|
|
|
bool ConsumeFieldMessage(Message* message, |
|
|
|
const Reflection* reflection, |
|
|
|
const Reflection* reflection, |
|
|
|
const FieldDescriptor* field) { |
|
|
|
const FieldDescriptor* field) { |
|
|
|
if (--recursion_budget_ < 0) { |
|
|
|
|
|
|
|
ReportError("Message is too deep"); |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// If the parse information tree is not NULL, create a nested one
|
|
|
|
// If the parse information tree is not NULL, create a nested one
|
|
|
|
// for the nested message.
|
|
|
|
// for the nested message.
|
|
|
@ -653,8 +648,6 @@ label_skip_parsing: |
|
|
|
delimiter)); |
|
|
|
delimiter)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
++recursion_budget_; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Reset the parse information tree.
|
|
|
|
// Reset the parse information tree.
|
|
|
|
parse_info_tree_ = parent; |
|
|
|
parse_info_tree_ = parent; |
|
|
|
return true; |
|
|
|
return true; |
|
|
@ -1186,7 +1179,6 @@ label_skip_parsing: |
|
|
|
const bool allow_unknown_enum_; |
|
|
|
const bool allow_unknown_enum_; |
|
|
|
const bool allow_field_number_; |
|
|
|
const bool allow_field_number_; |
|
|
|
const bool allow_partial_; |
|
|
|
const bool allow_partial_; |
|
|
|
int recursion_budget_; |
|
|
|
|
|
|
|
bool had_errors_; |
|
|
|
bool had_errors_; |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|