From bc0539942160adc6a787c6fdb87a6e8b44ffd42e Mon Sep 17 00:00:00 2001 From: Nora Trapp Date: Mon, 14 Mar 2022 12:11:37 -0700 Subject: [PATCH] Fix bug in OWSDisappearingMessageJob --- .../src/Messages/OWSDisappearingMessagesJob.m | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.m b/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.m index 4681b2d12b..ac299eb642 100644 --- a/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.m +++ b/SignalServiceKit/src/Messages/OWSDisappearingMessagesJob.m @@ -168,16 +168,22 @@ void AssertIsOnDisappearingMessagesQueue() function:__FUNCTION__ line:__LINE__]; - if (!nextMessageExpirationTimestampNumber && !nextStoryExpirationTimestampNumber) { + uint64_t nextExpirationAt; + if (nextMessageExpirationTimestampNumber && nextStoryExpirationTimestampNumber) { + uint64_t nextMessageExpirationAt = nextMessageExpirationTimestampNumber.unsignedLongLongValue; + uint64_t nextStoryExpirationAt = nextStoryExpirationTimestampNumber.unsignedLongLongValue; + nextExpirationAt = MIN(nextMessageExpirationAt, nextStoryExpirationAt); + } else if (nextMessageExpirationTimestampNumber) { + nextExpirationAt = nextMessageExpirationTimestampNumber.unsignedLongLongValue; + } else if (nextStoryExpirationTimestampNumber) { + nextExpirationAt = nextStoryExpirationTimestampNumber.unsignedLongLongValue; + } else { OWSLogDebug(@"No more expiring messages."); return deletedCount; } - uint64_t nextMessageExpirationAt = nextMessageExpirationTimestampNumber.unsignedLongLongValue; - uint64_t nextStoryExpirationAt = nextStoryExpirationTimestampNumber.unsignedLongLongValue; - uint64_t nextExpirationAt = MIN(nextMessageExpirationAt, nextStoryExpirationAt); - NSDate *nextEpirationDate = [NSDate ows_dateWithMillisecondsSince1970:nextExpirationAt]; - [self scheduleRunByDate:nextEpirationDate]; + NSDate *nextExpirationDate = [NSDate ows_dateWithMillisecondsSince1970:nextExpirationAt]; + [self scheduleRunByDate:nextExpirationDate]; return deletedCount; }