Add additional check for invalid megolm sessions

This commit is contained in:
Nicolas Werner 2021-10-04 21:46:31 +02:00
parent d46f916cc1
commit 4dd5f9841d
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9
3 changed files with 6 additions and 2 deletions

View file

@ -385,7 +385,7 @@ if(USE_BUNDLED_MTXCLIENT)
FetchContent_Declare( FetchContent_Declare(
MatrixClient MatrixClient
GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git
GIT_TAG b452a984b0fc522c21bb8df7d320bf13960974d0 GIT_TAG 4a598632f432953f4dbfacf6cfed4f85a1c59c5a
) )
set(BUILD_LIB_EXAMPLES OFF CACHE INTERNAL "") set(BUILD_LIB_EXAMPLES OFF CACHE INTERNAL "")
set(BUILD_LIB_TESTS OFF CACHE INTERNAL "") set(BUILD_LIB_TESTS OFF CACHE INTERNAL "")

View file

@ -163,7 +163,7 @@ modules:
buildsystem: cmake-ninja buildsystem: cmake-ninja
name: mtxclient name: mtxclient
sources: sources:
- commit: b452a984b0fc522c21bb8df7d320bf13960974d0 - commit: 4a598632f432953f4dbfacf6cfed4f85a1c59c5a
type: git type: git
url: https://github.com/Nheko-Reborn/mtxclient.git url: https://github.com/Nheko-Reborn/mtxclient.git
- config-opts: - config-opts:

View file

@ -1129,6 +1129,10 @@ decryptEvent(const MegolmSessionIndex &index,
std::string msg_str; std::string msg_str;
try { try {
auto session = cache::client()->getInboundMegolmSession(index); auto session = cache::client()->getInboundMegolmSession(index);
if (!session) {
return {DecryptionErrorCode::MissingSession, std::nullopt, std::nullopt};
}
auto sessionData = auto sessionData =
cache::client()->getMegolmSessionData(index).value_or(GroupSessionData{}); cache::client()->getMegolmSessionData(index).value_or(GroupSessionData{});