summaryrefslogtreecommitdiffstats
path: root/wsrep-lib/include/wsrep/logger.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'wsrep-lib/include/wsrep/logger.hpp')
-rw-r--r--wsrep-lib/include/wsrep/logger.hpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/wsrep-lib/include/wsrep/logger.hpp b/wsrep-lib/include/wsrep/logger.hpp
index a15873c2..4a9c46b1 100644
--- a/wsrep-lib/include/wsrep/logger.hpp
+++ b/wsrep-lib/include/wsrep/logger.hpp
@@ -86,7 +86,11 @@ namespace wsrep
{
if (logger_fn_)
{
- logger_fn_(level_, prefix_, oss_.str().c_str());
+ // Prolong the lifetime of the string so it doesn't get
+ // destroyed right after evaluating c_str() and before
+ // completing the logger function call.
+ const std::string& tmp = oss_.str();
+ logger_fn_(level_, prefix_, tmp.c_str());
}
else
{