From 34f6fd89426572200efd1215ebb69e8315ae3ec2 Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 8 Mar 2018 17:17:53 +0300 Subject: [PATCH] Ensure that list size limit isn't exceeded. GitOrigin-RevId: eded5582f4828928ca37fe64cde6c58fb469242c --- td/telegram/AnimationsManager.cpp | 3 +++ td/telegram/StickersManager.cpp | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/td/telegram/AnimationsManager.cpp b/td/telegram/AnimationsManager.cpp index 614de1d82..0ea5787a3 100644 --- a/td/telegram/AnimationsManager.cpp +++ b/td/telegram/AnimationsManager.cpp @@ -447,6 +447,9 @@ void AnimationsManager::on_load_saved_animations_from_database(const string &val } void AnimationsManager::on_load_saved_animations_finished(vector &&saved_animation_ids, bool from_database) { + if (static_cast(saved_animation_ids.size()) > saved_animations_limit_) { + saved_animation_ids.resize(saved_animations_limit_); + } saved_animation_ids_ = std::move(saved_animation_ids); are_saved_animations_loaded_ = true; send_update_saved_animations(from_database); diff --git a/td/telegram/StickersManager.cpp b/td/telegram/StickersManager.cpp index 8595784e7..91568d139 100644 --- a/td/telegram/StickersManager.cpp +++ b/td/telegram/StickersManager.cpp @@ -3396,6 +3396,9 @@ void StickersManager::on_load_recent_stickers_from_database(bool is_attached, st void StickersManager::on_load_recent_stickers_finished(bool is_attached, vector &&recent_sticker_ids, bool from_database) { + if (static_cast(recent_sticker_ids.size()) > recent_stickers_limit_) { + recent_sticker_ids.resize(recent_stickers_limit_); + } recent_sticker_ids_[is_attached] = std::move(recent_sticker_ids); are_recent_stickers_loaded_[is_attached] = true; need_update_recent_stickers_[is_attached] = true; @@ -3740,6 +3743,9 @@ void StickersManager::on_load_favorite_stickers_from_database(const string &valu } void StickersManager::on_load_favorite_stickers_finished(vector &&favorite_sticker_ids, bool from_database) { + if (static_cast(favorite_sticker_ids.size()) > favorite_stickers_limit_) { + favorite_sticker_ids.resize(favorite_stickers_limit_); + } favorite_sticker_ids_ = std::move(favorite_sticker_ids); are_favorite_stickers_loaded_ = true; send_update_favorite_stickers(from_database);