diff --git a/src/api/NetworkState.cpp b/src/api/NetworkState.cpp index 82d61c89..d88d08db 100644 --- a/src/api/NetworkState.cpp +++ b/src/api/NetworkState.cpp @@ -38,6 +38,7 @@ NetworkState::NetworkState() : failures(0), rejected(0), total(0), + powVariant(POW_AUTODETECT), m_active(false) { memset(pool, 0, sizeof(pool)); diff --git a/src/log/FileLog.cpp b/src/log/FileLog.cpp index 38d19349..77f2e713 100644 --- a/src/log/FileLog.cpp +++ b/src/log/FileLog.cpp @@ -56,7 +56,7 @@ void FileLog::message(int level, const char* fmt, va_list args) localtime_r(&now, &stime); # endif - char *buf = new char[512]; + auto *buf = new char[512]; int size = snprintf(buf, 23, "[%d-%02d-%02d %02d:%02d:%02d] ", stime.tm_year + 1900, stime.tm_mon + 1, @@ -70,7 +70,9 @@ void FileLog::message(int level, const char* fmt, va_list args) std::string row = std::regex_replace(std::string(buf, size+1), std::regex("\x1B\\[[0-9;]*[a-zA-Z]"), ""); - write(const_cast(row.c_str()), size + 1); + memcpy(buf, row.c_str(), row.length()); + + write(buf, row.length()); } diff --git a/src/log/RemoteLog.cpp b/src/log/RemoteLog.cpp index 194afed0..7a314790 100644 --- a/src/log/RemoteLog.cpp +++ b/src/log/RemoteLog.cpp @@ -44,7 +44,7 @@ void RemoteLog::message(int level, const char* fmt, va_list args) localtime_r(&now, &stime); # endif - char *buf = new char[512]; + auto *buf = new char[512]; int size = snprintf(buf, 23, "[%d-%02d-%02d %02d:%02d:%02d] ", stime.tm_year + 1900, stime.tm_mon + 1, @@ -63,6 +63,8 @@ void RemoteLog::message(int level, const char* fmt, va_list args) std::string row = std::regex_replace(std::string(buf, size+1), std::regex("\x1B\\[[0-9;]*[a-zA-Z]"), ""); rows_.push_back(row); + + delete[](buf); }