diff --git a/CHANGELOG.md b/CHANGELOG.md index 5da55242..f2b91586 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ # Unreleased +- Fix `EXC_BAD_ACCESS` crash in `GDTCORLogAssert` when a user's project path contains `%` characters. ([#16455](https://github.com/firebase/firebase-ios-sdk/issues/16455)) - Cancel upload operation when background task expires. - Log error when handling directory enumeration. diff --git a/GoogleDataTransport/GDTCORLibrary/GDTCORConsoleLogger.m b/GoogleDataTransport/GDTCORLibrary/GDTCORConsoleLogger.m index 5eaee924..102b4636 100644 --- a/GoogleDataTransport/GDTCORLibrary/GDTCORConsoleLogger.m +++ b/GoogleDataTransport/GDTCORLibrary/GDTCORConsoleLogger.m @@ -29,12 +29,12 @@ void GDTCORLog(GDTCORMessageCode code, GDTCORLoggingLevel logLevel, NSString *fo // Don't log anything in not debug builds. #if !NDEBUG if (logLevel >= GDTCORConsoleLoggerLoggingLevel) { - NSString *logFormat = [NSString stringWithFormat:@"%@[%@] %@", kGDTCORConsoleLogger, - GDTCORMessageCodeEnumToString(code), format]; va_list args; va_start(args, format); - NSLogv(logFormat, args); + NSString *message = format ? [[NSString alloc] initWithFormat:format arguments:args] : @""; va_end(args); + + NSLog(@"%@[%@] %@", kGDTCORConsoleLogger, GDTCORMessageCodeEnumToString(code), message); } #endif // !NDEBUG } @@ -44,12 +44,13 @@ void GDTCORLogAssert( // Don't log anything in not debug builds. #if !NDEBUG GDTCORMessageCode code = wasFatal ? GDTCORMCEFatalAssertion : GDTCORMCEGeneralError; - NSString *logFormat = - [NSString stringWithFormat:@"%@[%@] (%@:%ld) : %@", kGDTCORConsoleLogger, - GDTCORMessageCodeEnumToString(code), file, (long)line, format]; + va_list args; va_start(args, format); - NSLogv(logFormat, args); + NSString *message = format ? [[NSString alloc] initWithFormat:format arguments:args] : @""; va_end(args); + + NSLog(@"%@[%@] (%@:%ld) : %@", kGDTCORConsoleLogger, GDTCORMessageCodeEnumToString(code), file, + (long)line, message); #endif // !NDEBUG }