diff --git a/td/telegram/files/PartsManager.cpp b/td/telegram/files/PartsManager.cpp index 04e10da6..7122e6b2 100644 --- a/td/telegram/files/PartsManager.cpp +++ b/td/telegram/files/PartsManager.cpp @@ -62,6 +62,10 @@ Status PartsManager::init(int64 size, bool is_size_final, size_t part_size, cons if (part_size != 0) { part_size_ = part_size; + if (use_part_count_limit_ && (size_ + part_size_ - 1) / part_size_ > MAX_PART_COUNT) { + return Status::Error(PSLICE() << "Should restart load with bigger part_size " << tag("part_size_", part_size_) + << tag("size", size_)); + } } else { // TODO choose part_size_ depending on size part_size_ = 64 * (1 << 10);