mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-02 04:04:19 +00:00
Verifier for FlexBuffers (#6977)
* Verifier for FlexBuffers * Verifier improvements & fuzzer
This commit is contained in:
committed by
GitHub
parent
705f27f6ee
commit
e367ca32ad
@@ -510,9 +510,12 @@ int FlatCompiler::Compile(int argc, const char **argv) {
|
||||
LoadBinarySchema(*parser.get(), filename, contents);
|
||||
} else if (opts.use_flexbuffers) {
|
||||
if (opts.lang_to_generate == IDLOptions::kJson) {
|
||||
parser->flex_root_ = flexbuffers::GetRoot(
|
||||
reinterpret_cast<const uint8_t *>(contents.c_str()),
|
||||
contents.size());
|
||||
auto data = reinterpret_cast<const uint8_t *>(contents.c_str());
|
||||
auto size = contents.size();
|
||||
std::vector<bool> reuse_tracker;
|
||||
if (!flexbuffers::VerifyBuffer(data, size, &reuse_tracker))
|
||||
Error("flexbuffers file failed to verify: " + filename, false);
|
||||
parser->flex_root_ = flexbuffers::GetRoot(data, size);
|
||||
} else {
|
||||
parser->flex_builder_.Clear();
|
||||
ParseFile(*parser.get(), filename, contents, include_directories);
|
||||
|
||||
Reference in New Issue
Block a user