diff --git a/olp-cpp-sdk-core/src/logging/Log.cpp b/olp-cpp-sdk-core/src/logging/Log.cpp index 6bda97ecc..b920507a5 100644 --- a/olp-cpp-sdk-core/src/logging/Log.cpp +++ b/olp-cpp-sdk-core/src/logging/Log.cpp @@ -80,7 +80,7 @@ class LogImpl { unsigned int line, const char* function, const char* fullFunction); - void addCensor(std::string msg); + void addCensor(const std::string& msg); void removeCensor(const std::string& msg); private: @@ -228,11 +228,19 @@ void LogImpl::censorLogItem(LogItem& log_item, const std::string& original) { } } -void LogImpl::addCensor(std::string msg) { - m_toCensor.emplace_back(std::move(msg)); +void LogImpl::addCensor(const std::string& msg) { + if (msg.empty()) { + return; + } + + m_toCensor.emplace_back(msg); } void LogImpl::removeCensor(const std::string& msg) { + if (msg.empty()) { + return; + } + auto it = std::find(m_toCensor.begin(), m_toCensor.end(), msg); if (it != m_toCensor.end()) { m_toCensor.erase(it); diff --git a/olp-cpp-sdk-core/tests/logging/LogTest.cpp b/olp-cpp-sdk-core/tests/logging/LogTest.cpp index 644b3fda0..482639494 100644 --- a/olp-cpp-sdk-core/tests/logging/LogTest.cpp +++ b/olp-cpp-sdk-core/tests/logging/LogTest.cpp @@ -428,7 +428,9 @@ TEST(LogTest, LogCensor) { constexpr auto secret_01 = "1st secret"; constexpr auto secret_02 = "to hide"; constexpr auto secret_mask = "******"; + constexpr auto empty_secret = ""; + olp::logging::Log::addCensor(empty_secret); olp::logging::Log::addCensor(secret_01); olp::logging::Log::addCensor(secret_02); olp::logging::Log::addCensor(secret_mask); @@ -453,6 +455,7 @@ TEST(LogTest, LogCensor) { EXPECT_EQ("no loop **********", appender->messages_[6].message_); EXPECT_EQ("Fatal *****", appender->messages_[7].message_); + olp::logging::Log::removeCensor(empty_secret); olp::logging::Log::removeCensor("not exisiting secret"); OLP_SDK_LOG_TRACE_F("trace", "%s %s", "plain", secret_01); olp::logging::Log::removeCensor(secret_01);