From 9571109a69de3f687619b1a223187762f10279ef Mon Sep 17 00:00:00 2001 From: faluco Date: Fri, 10 Sep 2021 13:22:25 +0200 Subject: [PATCH] Abort program execution if STOP_ON_WARNING is defined when formatting an invalid log entry. --- lib/src/srslog/formatters/json_formatter.cpp | 6 ++++++ lib/src/srslog/formatters/text_formatter.cpp | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/lib/src/srslog/formatters/json_formatter.cpp b/lib/src/srslog/formatters/json_formatter.cpp index d3805aaf3..41387646e 100644 --- a/lib/src/srslog/formatters/json_formatter.cpp +++ b/lib/src/srslog/formatters/json_formatter.cpp @@ -32,6 +32,9 @@ void json_formatter::format(detail::log_entry_metadata&& metadata, fmt::memory_b fmt::vprintf(buffer, fmt::to_string_view(metadata.fmtstring), args); } catch (...) { fmt::print(stderr, "srsLog error - Invalid format string: \"{}\"\n", metadata.fmtstring); +#ifdef STOP_ON_WARNING + std::abort(); +#endif } fmt::format_to(buffer, fmt::to_string_view("\"")); } else { @@ -66,6 +69,9 @@ void json_formatter::format_context_begin(const detail::log_entry_metadata& md, fmt::vprintf(buffer, fmt::to_string_view(md.fmtstring), args); } catch (...) { fmt::print(stderr, "srsLog error - Invalid format string: \"{}\"\n", md.fmtstring); +#ifdef STOP_ON_WARNING + std::abort(); +#endif } fmt::format_to(buffer, "\",\n"); } else { diff --git a/lib/src/srslog/formatters/text_formatter.cpp b/lib/src/srslog/formatters/text_formatter.cpp index 0bd4e9460..216cf0718 100644 --- a/lib/src/srslog/formatters/text_formatter.cpp +++ b/lib/src/srslog/formatters/text_formatter.cpp @@ -70,6 +70,9 @@ void text_formatter::format(detail::log_entry_metadata&& metadata, fmt::memory_b fmt::vprintf(buffer, fmt::to_string_view(metadata.fmtstring), args); } catch (...) { fmt::print(stderr, "srsLog error - Invalid format string: \"{}\"\n", metadata.fmtstring); +#ifdef STOP_ON_WARNING + std::abort(); +#endif } fmt::format_to(buffer, "\n"); } else { @@ -114,6 +117,9 @@ void text_formatter::format_context_end(const detail::log_entry_metadata& md, fmt::vprintf(buffer, fmt::to_string_view(md.fmtstring), args); } catch (...) { fmt::print(stderr, "srsLog error - Invalid format string: \"{}\"\n", md.fmtstring); +#ifdef STOP_ON_WARNING + std::abort(); +#endif } fmt::format_to(buffer, "\n"); } else {