From 33fe1dfd3a03d8a6fee8e12bbc0093bc0360d0eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Thu, 14 Dec 2017 10:40:46 +0100 Subject: [PATCH] Fix format string bug in RTC_CHECK facility. Bug: None Change-Id: I7ba9bb582b30caa4be44b53f94df6efbe60b0000 Reviewed-on: https://webrtc-review.googlesource.com/33000 Commit-Queue: Niels Moller Reviewed-by: Karl Wiberg Cr-Commit-Position: refs/heads/master@{#21272} --- rtc_base/checks.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/rtc_base/checks.cc b/rtc_base/checks.cc index 2b1c08492b..ea3c712f1f 100644 --- a/rtc_base/checks.cc +++ b/rtc_base/checks.cc @@ -47,6 +47,7 @@ #endif namespace rtc { +namespace { void VPrintError(const char* format, va_list args) { #if defined(WEBRTC_ANDROID) @@ -56,6 +57,11 @@ void VPrintError(const char* format, va_list args) { #endif } +#if defined(__GNUC__) +void PrintError(const char* format, ...) + __attribute__((__format__(__printf__, 1, 2))); +#endif + void PrintError(const char* format, ...) { va_list args; va_start(args, format); @@ -97,6 +103,8 @@ void DumpBacktrace() { #endif } +} // namespace + FatalMessage::FatalMessage(const char* file, int line) { Init(file, line); } @@ -111,7 +119,7 @@ NO_RETURN FatalMessage::~FatalMessage() { fflush(stdout); fflush(stderr); stream_ << std::endl << "#" << std::endl; - PrintError(stream_.str().c_str()); + PrintError("%s", stream_.str().c_str()); DumpBacktrace(); fflush(stderr); abort();