diff options
Diffstat (limited to 'icing/index/numeric/integer-index.cc')
-rw-r--r-- | icing/index/numeric/integer-index.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/icing/index/numeric/integer-index.cc b/icing/index/numeric/integer-index.cc index 2f876e4..e7978bf 100644 --- a/icing/index/numeric/integer-index.cc +++ b/icing/index/numeric/integer-index.cc @@ -293,6 +293,10 @@ libtextclassifier3::Status IntegerIndex::Optimize( /*max_file_size=*/kMetadataFileSize, /*pre_mapping_file_offset=*/0, /*pre_mapping_mmap_size=*/kMetadataFileSize)); + if (metadata_mmapped_file.available_size() != kMetadataFileSize) { + return absl_ports::InternalError( + "Invalid metadata file size after Optimize"); + } metadata_mmapped_file_ = std::make_unique<MemoryMappedFile>(std::move(metadata_mmapped_file)); @@ -410,6 +414,9 @@ IntegerIndex::InitializeExistingFiles(const Filesystem& filesystem, /*max_file_size=*/kMetadataFileSize, /*pre_mapping_file_offset=*/0, /*pre_mapping_mmap_size=*/kMetadataFileSize)); + if (metadata_mmapped_file.available_size() != kMetadataFileSize) { + return absl_ports::FailedPreconditionError("Incorrect metadata file size"); + } auto posting_list_serializer = std::make_unique<PostingListIntegerIndexSerializer>(); |