avoid overflow in debug logging

pull/1/head
Michael Kirk 7 years ago
parent 503cb046e4
commit 01a6a3d98e

@ -134,7 +134,8 @@ NS_ASSUME_NONNULL_BEGIN
NSData *_Nullable data = NSData *_Nullable data =
[NSKeyedArchiver archivedDataWithRootObject:interaction]; [NSKeyedArchiver archivedDataWithRootObject:interaction];
OWSAssertDebug(data); OWSAssertDebug(data);
interactionSizeTotal += data.length; ows_add_overflow(
interactionSizeTotal, data.length, &interactionSizeTotal);
}]; }];
[transaction enumerateKeysAndObjectsInCollection:[TSAttachment collection] [transaction enumerateKeysAndObjectsInCollection:[TSAttachment collection]
usingBlock:^(NSString *key, id object, BOOL *stop) { usingBlock:^(NSString *key, id object, BOOL *stop) {
@ -143,7 +144,8 @@ NS_ASSUME_NONNULL_BEGIN
NSData *_Nullable data = NSData *_Nullable data =
[NSKeyedArchiver archivedDataWithRootObject:attachment]; [NSKeyedArchiver archivedDataWithRootObject:attachment];
OWSAssertDebug(data); OWSAssertDebug(data);
attachmentSizeTotal += data.length; ows_add_overflow(
attachmentSizeTotal, data.length, &attachmentSizeTotal);
}]; }];
}]; }];

@ -630,27 +630,30 @@ NS_ASSUME_NONNULL_BEGIN
{ {
unsigned long long databaseFileSize = 0; unsigned long long databaseFileSize = 0;
for (OWSBackupExportItem *item in self.unsavedDatabaseItems) { 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.", OWSLogInfo(@"exporting %@: count: %zd, bytes: %llu.",
@"database items", @"database items",
self.unsavedDatabaseItems.count, self.unsavedDatabaseItems.count,
databaseFileSize); databaseFileSize);
totalFileSize += databaseFileSize; ows_add_overflow(totalFileSize, databaseFileSize, &totalFileSize);
totalFileCount += self.unsavedDatabaseItems.count; ows_add_overflow(totalFileCount, self.unsavedDatabaseItems.count, &totalFileCount);
} }
{ {
unsigned long long attachmentFileSize = 0; unsigned long long attachmentFileSize = 0;
for (OWSAttachmentExport *attachmentExport in self.unsavedAttachmentExports) { for (OWSAttachmentExport *attachmentExport in self.unsavedAttachmentExports) {
attachmentFileSize += unsigned long long fileSize =
[OWSFileSystem fileSizeOfPath:attachmentExport.attachmentFilePath].unsignedLongLongValue; [OWSFileSystem fileSizeOfPath:attachmentExport.attachmentFilePath].unsignedLongLongValue;
ows_add_overflow(attachmentFileSize, fileSize, &attachmentFileSize);
} }
OWSLogInfo(@"exporting %@: count: %zd, bytes: %llu.", OWSLogInfo(@"exporting %@: count: %zd, bytes: %llu.",
@"attachment items", @"attachment items",
self.unsavedAttachmentExports.count, self.unsavedAttachmentExports.count,
attachmentFileSize); attachmentFileSize);
totalFileSize += attachmentFileSize; ows_add_overflow(totalFileSize, attachmentFileSize, &totalFileSize);
totalFileCount += self.unsavedAttachmentExports.count; ows_add_overflow(totalFileCount, self.unsavedAttachmentExports.count, &totalFileSize);
} }
OWSLogInfo(@"exporting %@: count: %zd, bytes: %llu.", @"all items", totalFileCount, totalFileSize); OWSLogInfo(@"exporting %@: count: %zd, bytes: %llu.", @"all items", totalFileCount, totalFileSize);

Loading…
Cancel
Save