Add additional check for invalid megolm sessions
3 files changed, 6 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 85726fed..a3b344b8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -385,7 +385,7 @@ if(USE_BUNDLED_MTXCLIENT)
FetchContent_Declare(
MatrixClient
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_TESTS OFF CACHE INTERNAL "")
diff --git a/io.github.NhekoReborn.Nheko.yaml b/io.github.NhekoReborn.Nheko.yaml
index 4b0f7bf3..e4b6ed8f 100644
--- a/io.github.NhekoReborn.Nheko.yaml
+++ b/io.github.NhekoReborn.Nheko.yaml
@@ -163,7 +163,7 @@ modules:
buildsystem: cmake-ninja
name: mtxclient
sources:
- - commit: b452a984b0fc522c21bb8df7d320bf13960974d0
+ - commit: 4a598632f432953f4dbfacf6cfed4f85a1c59c5a
type: git
url: https://github.com/Nheko-Reborn/mtxclient.git
- config-opts:
diff --git a/src/Olm.cpp b/src/Olm.cpp
index 60460b5c..14c97984 100644
--- a/src/Olm.cpp
+++ b/src/Olm.cpp
@@ -1129,6 +1129,10 @@ decryptEvent(const MegolmSessionIndex &index,
std::string msg_str;
try {
auto session = cache::client()->getInboundMegolmSession(index);
+ if (!session) {
+ return {DecryptionErrorCode::MissingSession, std::nullopt, std::nullopt};
+ }
+
auto sessionData =
cache::client()->getMegolmSessionData(index).value_or(GroupSessionData{});
|