From bc0de77024bf6f6af5a8149a0ce8c36d8728e79c Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 10 Oct 2018 15:36:48 +0200 Subject: [PATCH] fix(CoreManager): replace assert by log if chat model id is invalid in getChatModel (avoid crash for specific migrated chat rooms) --- src/components/core/CoreManager.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/components/core/CoreManager.cpp b/src/components/core/CoreManager.cpp index 845664f33..a5d022d1c 100644 --- a/src/components/core/CoreManager.cpp +++ b/src/components/core/CoreManager.cpp @@ -121,8 +121,14 @@ shared_ptr CoreManager::getChatModel (const QString &peerAddress, con // Create a new chat model. QPair chatModelId{ peerAddress, localAddress }; if (!mChatModels.contains(chatModelId)) { - Q_ASSERT(mCore->createAddress(Utils::appStringToCoreString(peerAddress))); - Q_ASSERT(mCore->createAddress(Utils::appStringToCoreString(localAddress))); + if ( + !mCore->createAddress(Utils::appStringToCoreString(peerAddress)) || + !mCore->createAddress(Utils::appStringToCoreString(localAddress)) + ) { + qWarning() << QStringLiteral("Unable to get chat model from invalid chat model id: (%1, %2).") + .arg(peerAddress).arg(localAddress); + return nullptr; + } auto deleter = [this, chatModelId](ChatModel *chatModel) { bool removed = mChatModels.remove(chatModelId);