From edebd14d420177766bbda25543ee814ba9f65a6e Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 5 Dec 2016 21:32:11 -0500 Subject: [PATCH] Ignore messages with unknown Envelope.Contents // FREEBIE --- src/Messages/TSMessagesManager.m | 46 ++++++++++++++------------------ 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/src/Messages/TSMessagesManager.m b/src/Messages/TSMessagesManager.m index 57cef4da3..53fce2e80 100644 --- a/src/Messages/TSMessagesManager.m +++ b/src/Messages/TSMessagesManager.m @@ -183,20 +183,7 @@ NS_ASSUME_NONNULL_BEGIN return; } - if (messageEnvelope.hasContent) { - OWSSignalServiceProtosContent *content = [OWSSignalServiceProtosContent parseFromData:plaintextData]; - if (content.hasSyncMessage) { - [self handleIncomingEnvelope:messageEnvelope withSyncMessage:content.syncMessage]; - } else if (content.dataMessage) { - [self handleIncomingEnvelope:messageEnvelope withDataMessage:content.dataMessage]; - } - } else if (messageEnvelope.hasLegacyMessage) { // DEPRECATED - Remove after all clients have been upgraded. - OWSSignalServiceProtosDataMessage *dataMessage = - [OWSSignalServiceProtosDataMessage parseFromData:plaintextData]; - [self handleIncomingEnvelope:messageEnvelope withDataMessage:dataMessage]; - } else { - DDLogWarn(@"Ignoring content that has no dataMessage or syncMessage."); - } + [self handleEnvelope:messageEnvelope plaintextData:plaintextData]; } } @@ -230,20 +217,27 @@ NS_ASSUME_NONNULL_BEGIN return; } - if (preKeyEnvelope.hasContent) { - OWSSignalServiceProtosContent *content = [OWSSignalServiceProtosContent parseFromData:plaintextData]; - if (content.hasSyncMessage) { - [self handleIncomingEnvelope:preKeyEnvelope withSyncMessage:content.syncMessage]; - } else if (content.dataMessage) { - [self handleIncomingEnvelope:preKeyEnvelope withDataMessage:content.dataMessage]; - } - } else if (preKeyEnvelope.hasLegacyMessage) { // DEPRECATED - Remove after all clients have been upgraded. - OWSSignalServiceProtosDataMessage *dataMessage = - [OWSSignalServiceProtosDataMessage parseFromData:plaintextData]; - [self handleIncomingEnvelope:preKeyEnvelope withDataMessage:dataMessage]; + [self handleEnvelope:preKeyEnvelope plaintextData:plaintextData]; + } +} + +- (void)handleEnvelope:(OWSSignalServiceProtosEnvelope *)envelope plaintextData:(NSData *)plaintextData +{ + if (envelope.hasContent) { + OWSSignalServiceProtosContent *content = [OWSSignalServiceProtosContent parseFromData:plaintextData]; + if (content.hasSyncMessage) { + [self handleIncomingEnvelope:envelope withSyncMessage:content.syncMessage]; + } else if (content.hasDataMessage) { + [self handleIncomingEnvelope:envelope withDataMessage:content.dataMessage]; } else { - DDLogWarn(@"Ignoring content that has no dataMessage or syncMessage."); + DDLogWarn(@"%@ Ignoring envelope.Content with no known payload", self.tag); } + } else if (envelope.hasLegacyMessage) { // DEPRECATED - Remove after all clients have been upgraded. + OWSSignalServiceProtosDataMessage *dataMessage = + [OWSSignalServiceProtosDataMessage parseFromData:plaintextData]; + [self handleIncomingEnvelope:envelope withDataMessage:dataMessage]; + } else { + DDLogWarn(@"%@ Ignoring envelope with neither DataMessage nor Content.", self.tag); } }