From a613baa1485572dd0fc6f6f60af165da73994f2c Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Fri, 22 Dec 2023 23:24:16 +0100 Subject: [PATCH] Don't crash when invited room doesn't have member state for the current room This smells illegal, but nothing stops a server from sending that to us so we shouldn't crash. BUG: 478903 --- src/neochatroom.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/neochatroom.cpp b/src/neochatroom.cpp index baa514628..97bd37704 100644 --- a/src/neochatroom.cpp +++ b/src/neochatroom.cpp @@ -108,16 +108,14 @@ NeoChatRoom::NeoChatRoom(Connection *connection, QString roomId, JoinState joinS return; } auto roomMemberEvent = currentState().get(localUser()->id()); - Q_ASSERT(roomMemberEvent); - const QString senderId = roomMemberEvent->senderId(); QImage avatar_image; - if (!user(senderId)->avatarUrl(this).isEmpty()) { - avatar_image = user(senderId)->avatar(128, this); + if (roomMemberEvent && !user(roomMemberEvent->senderId())->avatarUrl(this).isEmpty()) { + avatar_image = user(roomMemberEvent->senderId())->avatar(128, this); } else { qWarning() << "using this room's avatar"; avatar_image = avatar(128); } - NotificationsManager::instance().postInviteNotification(this, displayNameForHtml(), htmlSafeMemberName(senderId), avatar_image); + NotificationsManager::instance().postInviteNotification(this, displayNameForHtml(), htmlSafeMemberName(roomMemberEvent->senderId()), avatar_image); }); connect(this, &Room::changed, this, [this] { Q_EMIT canEncryptRoomChanged();