diff options
author | Sergio Campama <kaipi@google.com> | 2016-07-22 12:55:20 -0400 |
---|---|---|
committer | Sergio Campama <kaipi@google.com> | 2016-07-22 12:56:36 -0400 |
commit | 2ff93494a7edff2b00eaaf0982de11420740be52 (patch) | |
tree | 6e699dac3d5b040b25043ba18d44500b486113b1 | |
parent | 2ba058c66c10781d57a332987be23e3fed0f9e1c (diff) | |
download | protobuf-2ff93494a7edff2b00eaaf0982de11420740be52.tar.gz protobuf-2ff93494a7edff2b00eaaf0982de11420740be52.tar.bz2 protobuf-2ff93494a7edff2b00eaaf0982de11420740be52.zip |
Fixes the parsing of the proto-framework map file.
- Fixes memory issue where the pointer to the StringPiece would be allocated on the stack, and would mangle the output.
- Fixes length of the file name when parsing the comma separated files.
-rw-r--r-- | src/google/protobuf/compiler/objectivec/objectivec_file.cc | 2 | ||||
-rw-r--r-- | src/google/protobuf/compiler/objectivec/objectivec_helpers.cc | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_file.cc b/src/google/protobuf/compiler/objectivec/objectivec_file.cc index cf8c34e1..b864ef12 100644 --- a/src/google/protobuf/compiler/objectivec/objectivec_file.cc +++ b/src/google/protobuf/compiler/objectivec/objectivec_file.cc @@ -223,7 +223,7 @@ bool ImportWriter::ProtoFrameworkCollector::ConsumeLine( offset = proto_file_list.length(); } - StringPiece proto_file(proto_file_list, start, offset); + StringPiece proto_file(proto_file_list, start, offset - start); StringPieceTrimWhitespace(&proto_file); if (proto_file.size() != 0) { map<string, string>::iterator existing_entry = diff --git a/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc b/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc index 311bf35d..22c7a883 100644 --- a/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc +++ b/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc @@ -1306,7 +1306,8 @@ bool Parser::Finish() { return true; } // Force a newline onto the end to finish parsing. - p_ = StringPiece(leftover_ + "\n"); + leftover_ += "\n"; + p_ = StringPiece(leftover_); if (!ParseLoop()) { return false; } |