about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/omemo/omemo.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/omemo/omemo.c b/src/omemo/omemo.c
index 1cf97adb..15dd162d 100644
--- a/src/omemo/omemo.c
+++ b/src/omemo/omemo.c
@@ -851,10 +851,14 @@ omemo_on_message_recv(const char *const from_jid, uint32_t sid,
         }
     } else {
         log_debug("OMEMO: decrypting message with existing session");
-        signal_message *message;
-        signal_message_deserialize(&message, key->data, key->length, omemo_ctx.signal);
-        res = session_cipher_decrypt_signal_message(cipher, message, NULL, &plaintext_key);
-        SIGNAL_UNREF(message);
+        signal_message *message = NULL;
+        res = signal_message_deserialize(&message, key->data, key->length, omemo_ctx.signal);
+        if (res < 0) {
+            log_error("OMEMO: cannot deserialize message");
+        } else {
+            res = session_cipher_decrypt_signal_message(cipher, message, NULL, &plaintext_key);
+            SIGNAL_UNREF(message);
+        }
     }
 
     session_cipher_free(cipher);