summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/addline.cpp
diff options
context:
space:
mode:
authorattilamolnar <attilamolnar@hush.com>2012-09-30 01:10:57 +0200
committerattilamolnar <attilamolnar@hush.com>2012-09-30 03:04:07 +0200
commit02859be56d43bcece02aab350e02bc95ed1bf446 (patch)
treebbb68a91e26f4502c22047ad2b26ed8918c5fbb1 /src/modules/m_spanningtree/addline.cpp
parent83e90c4baa1215caf05295aec86a0a4d7bfff3f9 (diff)
Fix more undefined behavior caused by referencing the returned buffer by std::string::c_str() when the object is temporary
See 83c7cc45daf6fb1f8c36f15297a4657e45a34e88
Diffstat (limited to 'src/modules/m_spanningtree/addline.cpp')
-rw-r--r--src/modules/m_spanningtree/addline.cpp8
1 files changed, 5 insertions, 3 deletions
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 &params)
{
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 &params)
{
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 &params)
{
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
{