From 2755ff06d89a5cff024d678f5a87534c6841a5d2 Mon Sep 17 00:00:00 2001 From: sachaaaaa Date: Fri, 8 Feb 2019 14:21:44 +1100 Subject: [PATCH] remove messages from cache before throwing if the prekey id could not be verified --- libtextsecure/message_receiver.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/libtextsecure/message_receiver.js b/libtextsecure/message_receiver.js index 2e8bb94e4..082f12b35 100644 --- a/libtextsecure/message_receiver.js +++ b/libtextsecure/message_receiver.js @@ -731,11 +731,16 @@ MessageReceiver.prototype.extend({ window.log.info('prekey message from', this.getEnvelopeId(envelope)); promise = captureActiveSession(sessionCipher) .then(async () => { - const buffer = dcodeIO.ByteBuffer.wrap(ciphertext); - await window.libloki.storage.verifyFriendRequestAcceptPreKey( - envelope.source, - buffer - ); + try { + const buffer = dcodeIO.ByteBuffer.wrap(ciphertext); + await window.libloki.storage.verifyFriendRequestAcceptPreKey( + envelope.source, + buffer + ); + } catch (e) { + await this.removeFromCache(envelope); + throw e; + } return this.decryptPreKeyWhisperMessage( ciphertext, sessionCipher,