Skip to content

Commit b9762b4

Browse files
authored
Fix a crash on FIRCLSFileWriteString (#10750)
1 parent ac4a571 commit b9762b4

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

Crashlytics/Crashlytics/Components/FIRCLSContext.m

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,9 @@ bool FIRCLSContextMarkAndCheckIfCrashed(void) {
358358
[[root stringByAppendingPathComponent:component] fileSystemRepresentation]);
359359
}
360360

361-
static bool FIRCLSContextRecordIdentity(FIRCLSFile* file, const FIRCLSContextInitData* initData) {
361+
static bool FIRCLSContextRecordIdentity(FIRCLSFile* file,
362+
const char* sessionId,
363+
const char* betaToken) {
362364
FIRCLSFileWriteSectionStart(file, "identity");
363365

364366
FIRCLSFileWriteHashStart(file);
@@ -368,11 +370,11 @@ static bool FIRCLSContextRecordIdentity(FIRCLSFile* file, const FIRCLSContextIni
368370
FIRCLSFileWriteHashEntryString(file, "build_version", FIRCLSSDKVersion().UTF8String);
369371
FIRCLSFileWriteHashEntryUint64(file, "started_at", time(NULL));
370372

371-
FIRCLSFileWriteHashEntryString(file, "session_id", initData->sessionId);
373+
FIRCLSFileWriteHashEntryString(file, "session_id", sessionId);
372374
// install_id is written into the proto directly. This is only left here to
373375
// support Apple Report Converter.
374376
FIRCLSFileWriteHashEntryString(file, "install_id", "");
375-
FIRCLSFileWriteHashEntryString(file, "beta_token", initData->betaToken);
377+
FIRCLSFileWriteHashEntryString(file, "beta_token", betaToken);
376378
FIRCLSFileWriteHashEntryBoolean(file, "absolute_log_timestamps", true);
377379

378380
FIRCLSFileWriteHashEnd(file);
@@ -403,6 +405,10 @@ static bool FIRCLSContextRecordApplication(FIRCLSFile* file, const char* customB
403405
}
404406

405407
static bool FIRCLSContextRecordMetadata(const char* path, const FIRCLSContextInitData* initData) {
408+
const char* sessionId = initData->sessionId;
409+
const char* betaToken = initData->betaToken;
410+
const char* customBundleId = initData->customBundleId;
411+
406412
if (!FIRCLSUnlinkIfExists(path)) {
407413
FIRCLSSDKLog("Unable to unlink existing metadata file %s\n", strerror(errno));
408414
}
@@ -414,15 +420,15 @@ static bool FIRCLSContextRecordMetadata(const char* path, const FIRCLSContextIni
414420
return false;
415421
}
416422

417-
if (!FIRCLSContextRecordIdentity(&file, initData)) {
423+
if (!FIRCLSContextRecordIdentity(&file, sessionId, betaToken)) {
418424
FIRCLSSDKLog("Unable to write out identity metadata\n");
419425
}
420426

421427
if (!FIRCLSHostRecord(&file)) {
422428
FIRCLSSDKLog("Unable to write out host metadata\n");
423429
}
424430

425-
if (!FIRCLSContextRecordApplication(&file, initData->customBundleId)) {
431+
if (!FIRCLSContextRecordApplication(&file, customBundleId)) {
426432
FIRCLSSDKLog("Unable to write out application metadata\n");
427433
}
428434

0 commit comments

Comments
 (0)