From 5c81c0ddb2acc97718740c8ddcb5316cce94aff7 Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 31 Jan 2018 16:48:28 +0300 Subject: [PATCH] Fix handling of null formattedText. GitOrigin-RevId: 5bcde391288909e3119988cf94e223511cd22db4 --- td/telegram/MessagesManager.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 6ffcae99..6dab225a 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -13771,6 +13771,9 @@ Status MessagesManager::fix_text_message(string &text, vector &en Result MessagesManager::process_input_caption(DialogId dialog_id, tl_object_ptr &&text, bool is_bot) const { + if (text == nullptr) { + return {}; + } TRY_RESULT(entities, get_message_entities(td_->contacts_manager_.get(), std::move(text->entities_))); TRY_STATUS(fix_text_message(text->text_, entities, true, false, need_skip_bot_commands(dialog_id, is_bot), false)); return FormattedText{std::move(text->text_), std::move(entities)}; @@ -13782,6 +13785,15 @@ Result MessagesManager::process_input_message_text( CHECK(input_message_content != nullptr); CHECK(input_message_content->get_id() == td_api::inputMessageText::ID); auto input_message_text = static_cast(input_message_content.get()); + if (input_message_text->text_ == nullptr) { + if (for_draft) { + return InputMessageText{FormattedText{}, + input_message_text->disable_web_page_preview_, input_message_text->clear_draft_}; + } + + return Status::Error(400, "Message text can't be empty"); + } + TRY_RESULT(entities, get_message_entities(td_->contacts_manager_.get(), std::move(input_message_text->text_->entities_))); TRY_STATUS(fix_text_message(input_message_text->text_->text_, entities, for_draft, false,