From f9c64891ddda84c4713b33e3ab4e5657a669de33 Mon Sep 17 00:00:00 2001 From: Wouter van Oortmerssen Date: Thu, 14 Jun 2018 15:13:01 -0700 Subject: [PATCH] Fixed ASan array out of bounds. Change-Id: I53366bd14548aa41c3d25bcd187d7436d47e8665 Tested: on Linux. --- src/idl_parser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 6dfc45fad..0d7a5f26d 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -944,7 +944,7 @@ CheckedError Parser::ParseTableDelimiters(size_t &fieldn, if ((!opts.strict_json || !fieldn) && Is(terminator)) break; std::string name; if (is_nested_vector) { - if (fieldn > struct_def->fields.vec.size()) { + if (fieldn >= struct_def->fields.vec.size()) { return Error("too many unnamed fields in nested array"); } name = struct_def->fields.vec[fieldn]->name; @@ -1213,7 +1213,7 @@ CheckedError Parser::ParseNestedFlatbuffer(Value &val, FieldDef *field, // Force alignment for nested flatbuffer builder_.ForceVectorAlignment(nested_parser.builder_.GetSize(), sizeof(uint8_t), nested_parser.builder_.GetBufferMinAlignment()); - + auto off = builder_.CreateVector(nested_parser.builder_.GetBufferPointer(), nested_parser.builder_.GetSize()); val.constant = NumToString(off.o);