diff --git a/Podfile.lock b/Podfile.lock index 153b82414..af8dda1fe 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -125,7 +125,7 @@ EXTERNAL SOURCES: :branch: signal-master :git: https://github.com/WhisperSystems/JSQMessagesViewController.git SignalServiceKit: - :path: . + :path: "." SocketRocket: :git: https://github.com/facebook/SocketRocket.git diff --git a/SignalServiceKit/Example/TSKitiOSTestApp/Podfile.lock b/SignalServiceKit/Example/TSKitiOSTestApp/Podfile.lock index 50160c58b..f243593f1 100644 --- a/SignalServiceKit/Example/TSKitiOSTestApp/Podfile.lock +++ b/SignalServiceKit/Example/TSKitiOSTestApp/Podfile.lock @@ -113,7 +113,7 @@ EXTERNAL SOURCES: AxolotlKit: :git: https://github.com/WhisperSystems/SignalProtocolKit.git SignalServiceKit: - :path: ../../../SignalServiceKit.podspec + :path: "../../../SignalServiceKit.podspec" SocketRocket: :git: https://github.com/facebook/SocketRocket.git diff --git a/SignalServiceKit/src/Messages/OWSMessageReceiver.m b/SignalServiceKit/src/Messages/OWSMessageReceiver.m index 09f3f513d..8904fc843 100644 --- a/SignalServiceKit/src/Messages/OWSMessageReceiver.m +++ b/SignalServiceKit/src/Messages/OWSMessageReceiver.m @@ -333,6 +333,20 @@ NSString *const OWSMessageProcessingJobFinderExtensionGroup = @"OWSMessageProces - (void)handleReceivedEnvelope:(OWSSignalServiceProtosEnvelope *)envelope { + // Drop any too-large messages on the floor. Well behaving clients should never send them. + NSUInteger kMaxEnvelopeByteCount = 250 * 1024; + if (envelope.serializedSize > kMaxEnvelopeByteCount) { + OWSProdError(@"message_receiver_error_oversize_message"); + return; + } + + // Take note of any messages larger than we expect, but still process them. + // This likely indicates a misbehaving sending client. + NSUInteger kLargeEnvelopeWarningByteCount = 25 * 1024; + if (envelope.serializedSize > kLargeEnvelopeWarningByteCount) { + OWSProdError(@"message_receiver_error_large_message"); + } + [self.processingQueue enqueueEnvelopeForProcessing:envelope]; [self.processingQueue drainQueue]; } diff --git a/SignalServiceKit/src/Messages/TSMessagesManager.m b/SignalServiceKit/src/Messages/TSMessagesManager.m index 9e0b05598..3b787cea9 100644 --- a/SignalServiceKit/src/Messages/TSMessagesManager.m +++ b/SignalServiceKit/src/Messages/TSMessagesManager.m @@ -392,13 +392,6 @@ NS_ASSUME_NONNULL_BEGIN return; } - NSUInteger kMaxEncryptedDataLength = 250 * 1024; - if (encryptedData.length > kMaxEncryptedDataLength) { - OWSProdError(@"message_manager_error_oversize_message"); - completion(nil); - return; - } - NSData *plaintextData; @try {