From 2b43fe31ed5f9b0b1d081db26c1670e842867429 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Thu, 29 Nov 2018 15:30:07 -0700 Subject: [PATCH] verify serialzed message exists --- SignalServiceKit/src/Messages/OWSMessageSender.m | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/SignalServiceKit/src/Messages/OWSMessageSender.m b/SignalServiceKit/src/Messages/OWSMessageSender.m index 53c359a67..d0dfba4d6 100644 --- a/SignalServiceKit/src/Messages/OWSMessageSender.m +++ b/SignalServiceKit/src/Messages/OWSMessageSender.m @@ -1458,7 +1458,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; // we open a transaction. [self throws_ensureRecipientHasSessionForMessageSend:messageSend deviceId:deviceId]; - __block NSDictionary *messageDict; + __block NSDictionary *_Nullable messageDict; __block NSException *encryptionException; [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { @@ -1626,10 +1626,10 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; }) retainUntilComplete]; } -- (NSDictionary *)throws_encryptedMessageForMessageSend:(OWSMessageSend *)messageSend - deviceId:(NSNumber *)deviceId - plainText:(NSData *)plainText - transaction:(YapDatabaseReadWriteTransaction *)transaction +- (nullable NSDictionary *)throws_encryptedMessageForMessageSend:(OWSMessageSend *)messageSend + deviceId:(NSNumber *)deviceId + plainText:(NSData *)plainText + transaction:(YapDatabaseReadWriteTransaction *)transaction { OWSAssertDebug(messageSend); OWSAssertDebug(deviceId); @@ -1679,6 +1679,10 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; protocolContext:transaction error:&error]; SCKRaiseIfExceptionWrapperError(error); + if (!serializedMessage || error) { + OWSFailDebug(@"error while UD encrypting message: %@", error); + return nil; + } messageType = TSUnidentifiedSenderMessageType; } else { // This may throw an exception.