From e350e011d29e1c8db1d5cdceefc99093277024c6 Mon Sep 17 00:00:00 2001 From: Tobias Hammer Date: Fri, 26 Jun 2020 10:22:26 +0200 Subject: [PATCH] Fix possible resursion in FMT_ASSERT Use std::fprintf for assertion message output preventing infinite recursion when output to stderr is limited or broken. --- include/fmt/format-inl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/fmt/format-inl.h b/include/fmt/format-inl.h index 44a1f661..aeb26b84 100644 --- a/include/fmt/format-inl.h +++ b/include/fmt/format-inl.h @@ -49,7 +49,7 @@ FMT_BEGIN_NAMESPACE namespace detail { FMT_FUNC void assert_fail(const char* file, int line, const char* message) { - print(stderr, "{}:{}: assertion failed: {}", file, line, message); + std::fprintf(stderr, "%s:%d: assertion failed: %s", file, line, message); // Chosen instead of std::abort to satisfy Clang in CUDA mode during device // code pass. std::terminate();