From 02859be56d43bcece02aab350e02bc95ed1bf446 Mon Sep 17 00:00:00 2001 From: attilamolnar Date: Sun, 30 Sep 2012 01:10:57 +0200 Subject: Fix more undefined behavior caused by referencing the returned buffer by std::string::c_str() when the object is temporary See 83c7cc45daf6fb1f8c36f15297a4657e45a34e88 --- src/modules/m_spanningtree/addline.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/modules/m_spanningtree/addline.cpp') diff --git a/src/modules/m_spanningtree/addline.cpp b/src/modules/m_spanningtree/addline.cpp index 5c3ad548d..7ee1a7ef1 100644 --- a/src/modules/m_spanningtree/addline.cpp +++ b/src/modules/m_spanningtree/addline.cpp @@ -30,7 +30,8 @@ bool TreeSocket::AddLine(const std::string &prefix, parameterlist ¶ms) { if (params.size() < 6) { - ServerInstance->SNO->WriteToSnoMask('d', "%s sent me a malformed ADDLINE", MyRoot->GetName().c_str()); + std::string servername = MyRoot->GetName(); + ServerInstance->SNO->WriteToSnoMask('d', "%s sent me a malformed ADDLINE", servername.c_str()); return true; } @@ -44,7 +45,7 @@ bool TreeSocket::AddLine(const std::string &prefix, parameterlist ¶ms) { TreeServer* t = Utils->FindServer(prefix); if (t) - setter = t->GetName().c_str(); + setter = t->GetName(); } if (!xlf) @@ -68,8 +69,9 @@ bool TreeSocket::AddLine(const std::string &prefix, parameterlist ¶ms) { if (xl->duration) { + std::string timestr = ServerInstance->TimeString(xl->expiry); ServerInstance->SNO->WriteToSnoMask('X',"%s added %s%s on %s to expire on %s: %s",setter.c_str(),params[0].c_str(),params[0].length() == 1 ? "-line" : "", - params[1].c_str(),ServerInstance->TimeString(xl->expiry).c_str(),params[5].c_str()); + params[1].c_str(), timestr.c_str(), params[5].c_str()); } else { -- cgit v1.3.1-10-gc9f91