diff options
Diffstat (limited to 'wsrep-lib/include/wsrep/logger.hpp')
-rw-r--r-- | wsrep-lib/include/wsrep/logger.hpp | 6 |
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 { |