From 473e49252e52dbbe053b330632c87f916f37876b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Thu, 8 Oct 2020 15:56:17 +0200 Subject: [PATCH] crytpo: Get the session from the list of sessions in a safe manner. --- matrix_sdk_crypto/src/identities/device.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/matrix_sdk_crypto/src/identities/device.rs b/matrix_sdk_crypto/src/identities/device.rs index 8ab5f2ca..73aeb22d 100644 --- a/matrix_sdk_crypto/src/identities/device.rs +++ b/matrix_sdk_crypto/src/identities/device.rs @@ -365,9 +365,15 @@ impl ReadOnlyDevice { return Err(EventError::MissingSenderKey.into()); }; - let mut session = if let Some(s) = store.get_sessions(sender_key).await? { - let session = &s.lock().await[0]; - session.clone() + let session = if let Some(s) = store.get_sessions(sender_key).await? { + let sessions = s.lock().await; + sessions.get(0).cloned() + } else { + None + }; + + let mut session = if let Some(s) = session { + s } else { warn!( "Trying to encrypt a Megolm session for user {} on device {}, \