From 562e608e1fe4aaac477f16b05d11dde484db27bc Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Fri, 15 Jan 2021 11:50:11 -0500 Subject: [PATCH] Fix issue with previously-enqueued bad encrypted messages. --- .../securesms/jobs/PushProcessMessageJob.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java index 8a435b1f5f..30d0561c09 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java @@ -497,6 +497,12 @@ public final class PushProcessMessageJob extends BaseJob { handleUnsupportedDataMessage(e.sender, e.senderDevice, Optional.fromNullable(e.groupId), timestamp, smsMessageId); break; + case CORRUPT_MESSAGE: + case NO_SESSION: + warn(TAG, String.valueOf(timestamp), "Discovered old enqueued bad encrypted message. Scheduling reset."); + ApplicationDependencies.getJobManager().add(new AutomaticSessionResetJob(Recipient.external(context, e.sender).getId(), e.senderDevice, timestamp)); + break; + default: throw new AssertionError("Not handled " + messageState + ". (" + timestamp + ")"); } @@ -2022,6 +2028,8 @@ public final class PushProcessMessageJob extends BaseJob { public enum MessageState { DECRYPTED_OK, INVALID_VERSION, + CORRUPT_MESSAGE, // Not used, but can't remove due to serialization + NO_SESSION, // Not used, but can't remove due to serialization LEGACY_MESSAGE, DUPLICATE_MESSAGE, UNSUPPORTED_DATA_MESSAGE