Fix read of uninitialized data on invalid input in the first token.

PiperOrigin-RevId: 561028957
pull/13509/head
Protobuf Team Bot 2 years ago committed by Copybara-Service
parent da398bd4c2
commit 1a4915e345
  1. 13
      src/google/protobuf/compiler/parser_unittest.cc
  2. 1
      src/google/protobuf/io/tokenizer.cc

@ -1134,6 +1134,19 @@ TEST_F(ParseMessageTest, ExplicitOptionalLabelProto3) {
"}");
}
TEST_F(ParseMessageTest, CanHandleErrorOnFirstToken) {
require_syntax_identifier_ = false;
ExpectHasEarlyExitErrors(
"/", "0:0: Expected top-level statement (e.g. \"message\").\n");
require_syntax_identifier_ = true;
ExpectHasEarlyExitErrors(
"/",
"0:0: Expected top-level statement (e.g. \"message\").\n"
"0:0: File must begin with a syntax statement, e.g. 'syntax = "
"\"proto2\";'.\n");
}
// ===================================================================
typedef ParserTest ParseEnumTest;

@ -235,6 +235,7 @@ Tokenizer::Tokenizer(ZeroCopyInputStream* input,
current_.column = 0;
current_.end_column = 0;
current_.type = TYPE_START;
previous_ = current_;
Refresh();
}

Loading…
Cancel
Save