diff --git a/Signal/src/ViewControllers/DebugUI/DebugUIBackup.m b/Signal/src/ViewControllers/DebugUI/DebugUIBackup.m index f1d57eb2d..ab13077e6 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUIBackup.m +++ b/Signal/src/ViewControllers/DebugUI/DebugUIBackup.m @@ -134,7 +134,8 @@ NS_ASSUME_NONNULL_BEGIN NSData *_Nullable data = [NSKeyedArchiver archivedDataWithRootObject:interaction]; OWSAssertDebug(data); - interactionSizeTotal += data.length; + ows_add_overflow( + interactionSizeTotal, data.length, &interactionSizeTotal); }]; [transaction enumerateKeysAndObjectsInCollection:[TSAttachment collection] usingBlock:^(NSString *key, id object, BOOL *stop) { @@ -143,7 +144,8 @@ NS_ASSUME_NONNULL_BEGIN NSData *_Nullable data = [NSKeyedArchiver archivedDataWithRootObject:attachment]; OWSAssertDebug(data); - attachmentSizeTotal += data.length; + ows_add_overflow( + attachmentSizeTotal, data.length, &attachmentSizeTotal); }]; }]; diff --git a/Signal/src/util/OWSBackupExportJob.m b/Signal/src/util/OWSBackupExportJob.m index a541e1072..778851429 100644 --- a/Signal/src/util/OWSBackupExportJob.m +++ b/Signal/src/util/OWSBackupExportJob.m @@ -630,27 +630,30 @@ NS_ASSUME_NONNULL_BEGIN { unsigned long long databaseFileSize = 0; for (OWSBackupExportItem *item in self.unsavedDatabaseItems) { - databaseFileSize += [OWSFileSystem fileSizeOfPath:item.encryptedItem.filePath].unsignedLongLongValue; + unsigned long long fileSize = + [OWSFileSystem fileSizeOfPath:item.encryptedItem.filePath].unsignedLongLongValue; + ows_add_overflow(databaseFileSize, fileSize, &databaseFileSize); } OWSLogInfo(@"exporting %@: count: %zd, bytes: %llu.", @"database items", self.unsavedDatabaseItems.count, databaseFileSize); - totalFileSize += databaseFileSize; - totalFileCount += self.unsavedDatabaseItems.count; + ows_add_overflow(totalFileSize, databaseFileSize, &totalFileSize); + ows_add_overflow(totalFileCount, self.unsavedDatabaseItems.count, &totalFileCount); } { unsigned long long attachmentFileSize = 0; for (OWSAttachmentExport *attachmentExport in self.unsavedAttachmentExports) { - attachmentFileSize += + unsigned long long fileSize = [OWSFileSystem fileSizeOfPath:attachmentExport.attachmentFilePath].unsignedLongLongValue; + ows_add_overflow(attachmentFileSize, fileSize, &attachmentFileSize); } OWSLogInfo(@"exporting %@: count: %zd, bytes: %llu.", @"attachment items", self.unsavedAttachmentExports.count, attachmentFileSize); - totalFileSize += attachmentFileSize; - totalFileCount += self.unsavedAttachmentExports.count; + ows_add_overflow(totalFileSize, attachmentFileSize, &totalFileSize); + ows_add_overflow(totalFileCount, self.unsavedAttachmentExports.count, &totalFileSize); } OWSLogInfo(@"exporting %@: count: %zd, bytes: %llu.", @"all items", totalFileCount, totalFileSize);