Skip to content

Commit 3943cb1

Browse files
authored
Fix sanitizer issues (#4043)
Fixes #4039 Fixes #4027
1 parent 37747db commit 3943cb1

File tree

4 files changed

+25
-19
lines changed

4 files changed

+25
-19
lines changed

GoogleDataTransport/GDTCORLibrary/GDTCORStorage.m

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,9 @@ - (void)appWillForeground:(GDTCORApplication *)app {
217217
if (@available(macOS 10.13, iOS 11.0, tvOS 11.0, *)) {
218218
NSError *error;
219219
NSData *data = [NSData dataWithContentsOfFile:[GDTCORStorage archivePath]];
220-
[NSKeyedUnarchiver unarchivedObjectOfClass:[GDTCORStorage class] fromData:data error:&error];
220+
if (data) {
221+
[NSKeyedUnarchiver unarchivedObjectOfClass:[GDTCORStorage class] fromData:data error:&error];
222+
}
221223
} else {
222224
#if !TARGET_OS_MACCATALYST
223225
[NSKeyedUnarchiver unarchiveObjectWithFile:[GDTCORStorage archivePath]];

GoogleDataTransport/GDTCORLibrary/GDTCORUploadCoordinator.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,8 @@ - (void)encodeWithCoder:(NSCoder *)aCoder {
180180
dispatch_sync(_coordinationQueue, ^{
181181
// All packages that have been given to uploaders need to be tracked so that their expiration
182182
// timers can be called.
183-
if (_targetToInFlightPackages.count > 0) {
184-
[aCoder encodeObject:_targetToInFlightPackages forKey:ktargetToInFlightPackagesKey];
183+
if (self->_targetToInFlightPackages.count > 0) {
184+
[aCoder encodeObject:self->_targetToInFlightPackages forKey:ktargetToInFlightPackagesKey];
185185
}
186186
});
187187
}

GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTCCTUploader.m

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,17 @@ - (void)uploadPackage:(GDTCORUploadPackage *)package {
116116
GDTCORLogWarning(GDTCORMCWUploadFailed, @"There was an error uploading events: %@", error);
117117
}
118118
NSError *decodingError;
119-
gdt_cct_LogResponse logResponse = GDTCCTDecodeLogResponse(data, &decodingError);
120-
if (!decodingError && logResponse.has_next_request_wait_millis) {
121-
self->_nextUploadTime =
122-
[GDTCORClock clockSnapshotInTheFuture:logResponse.next_request_wait_millis];
123-
} else {
124-
// 15 minutes from now.
125-
self->_nextUploadTime = [GDTCORClock clockSnapshotInTheFuture:15 * 60 * 1000];
119+
if (data) {
120+
gdt_cct_LogResponse logResponse = GDTCCTDecodeLogResponse(data, &decodingError);
121+
if (!decodingError && logResponse.has_next_request_wait_millis) {
122+
self->_nextUploadTime =
123+
[GDTCORClock clockSnapshotInTheFuture:logResponse.next_request_wait_millis];
124+
} else {
125+
// 15 minutes from now.
126+
self->_nextUploadTime = [GDTCORClock clockSnapshotInTheFuture:15 * 60 * 1000];
127+
}
128+
pb_release(gdt_cct_LogResponse_fields, &logResponse);
126129
}
127-
pb_release(gdt_cct_LogResponse_fields, &logResponse);
128130
#if !NDEBUG
129131
// Post a notification when in DEBUG mode to state how many packages were uploaded. Useful
130132
// for validation during tests.

GoogleDataTransportCCTSupport/GDTCCTLibrary/GDTFLLUploader.m

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,15 +141,17 @@ - (void)uploadPackage:(GDTCORUploadPackage *)package {
141141
GDTCORLogWarning(GDTCORMCWUploadFailed, @"There was an error uploading events: %@", error);
142142
}
143143
NSError *decodingError;
144-
gdt_cct_LogResponse logResponse = GDTCCTDecodeLogResponse(data, &decodingError);
145-
if (!decodingError && logResponse.has_next_request_wait_millis) {
146-
self->_nextUploadTime =
147-
[GDTCORClock clockSnapshotInTheFuture:logResponse.next_request_wait_millis];
148-
} else {
149-
// 15 minutes from now.
150-
self->_nextUploadTime = [GDTCORClock clockSnapshotInTheFuture:15 * 60 * 1000];
144+
if (data) {
145+
gdt_cct_LogResponse logResponse = GDTCCTDecodeLogResponse(data, &decodingError);
146+
if (!decodingError && logResponse.has_next_request_wait_millis) {
147+
self->_nextUploadTime =
148+
[GDTCORClock clockSnapshotInTheFuture:logResponse.next_request_wait_millis];
149+
} else {
150+
// 15 minutes from now.
151+
self->_nextUploadTime = [GDTCORClock clockSnapshotInTheFuture:15 * 60 * 1000];
152+
}
153+
pb_release(gdt_cct_LogResponse_fields, &logResponse);
151154
}
152-
pb_release(gdt_cct_LogResponse_fields, &logResponse);
153155

154156
// Only retry if one of these codes is returned.
155157
if (((NSHTTPURLResponse *)response).statusCode == 429 ||

0 commit comments

Comments
 (0)