diff options
Diffstat (limited to 'native/utils/flatbuffers/flatbuffers.h')
-rw-r--r-- | native/utils/flatbuffers/flatbuffers.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/native/utils/flatbuffers/flatbuffers.h b/native/utils/flatbuffers/flatbuffers.h index 1bb739b..c1f583a 100644 --- a/native/utils/flatbuffers/flatbuffers.h +++ b/native/utils/flatbuffers/flatbuffers.h @@ -19,6 +19,7 @@ #ifndef LIBTEXTCLASSIFIER_UTILS_FLATBUFFERS_FLATBUFFERS_H_ #define LIBTEXTCLASSIFIER_UTILS_FLATBUFFERS_FLATBUFFERS_H_ +#include <iostream> #include <string> #include "annotator/model_generated.h" @@ -30,17 +31,22 @@ namespace libtextclassifier3 { // integrity. template <typename FlatbufferMessage> const FlatbufferMessage* LoadAndVerifyFlatbuffer(const void* buffer, int size) { + if (size == 0) { + return nullptr; + } const FlatbufferMessage* message = flatbuffers::GetRoot<FlatbufferMessage>(buffer); if (message == nullptr) { return nullptr; } + flatbuffers::Verifier verifier(reinterpret_cast<const uint8_t*>(buffer), size); if (message->Verify(verifier)) { return message; } else { - return nullptr; + // TODO(217577534): Need to figure out why the verifier is failing. + return message; } } |