From be82ac563323ed83427b3ad692650c8283ce5338 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Tue, 3 Sep 2019 20:31:32 +0200 Subject: fix some crashes --- .../de/pixart/messenger/crypto/axolotl/XmppAxolotlSession.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/main/java/de/pixart/messenger/crypto/axolotl/XmppAxolotlSession.java') diff --git a/src/main/java/de/pixart/messenger/crypto/axolotl/XmppAxolotlSession.java b/src/main/java/de/pixart/messenger/crypto/axolotl/XmppAxolotlSession.java index 71e20676e..f7a9c0a6f 100644 --- a/src/main/java/de/pixart/messenger/crypto/axolotl/XmppAxolotlSession.java +++ b/src/main/java/de/pixart/messenger/crypto/axolotl/XmppAxolotlSession.java @@ -115,7 +115,13 @@ public class XmppAxolotlSession implements Comparable { SignalMessage signalMessage = new SignalMessage(encryptedKey.key); try { plaintext = cipher.decrypt(signalMessage); - } catch (InvalidMessageException | NoSessionException e) { + } catch (InvalidMessageException e) { + if (iterator.hasNext()) { + Log.w(Config.LOGTAG, account.getJid().asBareJid() + ": ignoring crypto exception because possible keys left to try", e); + continue; + } + throw new BrokenSessionException(this.remoteAddress, e); + } catch (NoSessionException e) { if (iterator.hasNext()) { Log.w(Config.LOGTAG, account.getJid().asBareJid() + ": ignoring crypto exception because possible keys left to try", e); continue; -- cgit v1.2.3