From 06fa920e2019b602d606b7394cba23204a009be6 Mon Sep 17 00:00:00 2001 From: Maciej Gibowicz Date: Tue, 18 May 2021 12:58:55 +0200 Subject: [PATCH] [EGD-6768] Disable logs in interrupts Temporarily disable logs in interrupts for heap overwriting reasons --- module-utils/log/log.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/module-utils/log/log.cpp b/module-utils/log/log.cpp index 2d99984f5077966bc504b0683cc86d1c8bafb0d7..08cbea4a0559b7eaeb8aca78312d4d447848c200 100644 --- a/module-utils/log/log.cpp +++ b/module-utils/log/log.cpp @@ -4,12 +4,19 @@ #include "log.hpp" #include "Logger.hpp" #include +#include using Log::Logger; int log_Printf(const char *fmt, ...) { va_list args; + + // temporarily disable logs in interrupts for heap overwriting reasons + if (isIRQ()) { + return 0; + } + va_start(args, fmt); const int result = Logger::get().log(Log::Device::DEFAULT, fmt, args); va_end(args); @@ -19,6 +26,12 @@ int log_Printf(const char *fmt, ...) int log_Log(logger_level level, const char *file, int line, const char *function, const char *fmt, ...) { va_list args; + + // temporarily disable logs in interrupts for heap overwriting reasons + if (isIRQ()) { + return 0; + } + va_start(args, fmt); const int result = Logger::get().log(level, file, line, function, fmt, args); va_end(args); @@ -30,6 +43,12 @@ extern "C" void bt_log_custom(const char *file, int line, const char *foo, const char *fmt, ...) { va_list args; + + // temporarily disable logs in interrupts for heap overwriting reasons + if (isIRQ()) { + return; + } + va_start(args, fmt); Logger::get().log(LOGTRACE, file, line, foo, fmt, args); va_end(args);