From 62dab43689cc69b8753c44a18b0cdafc5ed4aabd Mon Sep 17 00:00:00 2001 From: Nick Cooke Date: Tue, 9 Dec 2025 16:55:52 -0500 Subject: [PATCH] fix: some crashlytics flakes --- Crashlytics/Crashlytics/Helpers/FIRCLSFile.m | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Crashlytics/Crashlytics/Helpers/FIRCLSFile.m b/Crashlytics/Crashlytics/Helpers/FIRCLSFile.m index 48dc787ebd1..7afb657770a 100644 --- a/Crashlytics/Crashlytics/Helpers/FIRCLSFile.m +++ b/Crashlytics/Crashlytics/Helpers/FIRCLSFile.m @@ -175,9 +175,13 @@ bool FIRCLSFileCloseWithOffset(FIRCLSFile* file, off_t* finalSize) { *finalSize = file->writtenLength; } - if (close(file->fd) != 0) { - FIRCLSSDKLog("Error: Unable to close file %s\n", strerror(errno)); - return false; + // If the FIRCLSFile struct was zero-initialized (e.g. via memset) and never opened, + // fd will be 0. Closing fd 0 triggers a system-level EXC_GUARD crash. + if (file->fd > STDERR_FILENO) { + if (close(file->fd) != 0) { + FIRCLSSDKLog("Error: Unable to close file %s\n", strerror(errno)); + return false; + } } memset(file, 0, sizeof(FIRCLSFile));