diff --git a/src/modules/logger/log_writer_file.cpp b/src/modules/logger/log_writer_file.cpp index 7b052a58c5..a54f3a38b7 100644 --- a/src/modules/logger/log_writer_file.cpp +++ b/src/modules/logger/log_writer_file.cpp @@ -60,13 +60,7 @@ LogWriterFile::LogWriterFile(size_t buffer_size) : bool LogWriterFile::init() { - if (_buffer) { - return true; - } - - _buffer = new uint8_t[_buffer_size]; - - return _buffer; + return true; } LogWriterFile::~LogWriterFile() @@ -91,6 +85,17 @@ void LogWriterFile::start_log(const char *filename) return; } else { + + if (_buffer == nullptr) { + _buffer = new uint8_t[_buffer_size]; + + if (_buffer == nullptr) { + PX4_ERR("Can't create log buffer"); + _should_run = false; + return; + } + } + PX4_INFO("Opened log file: %s", filename); _should_run = true; _running = true;