diff options
author | attilamolnar <attilamolnar@hush.com> | 2012-09-30 01:10:57 +0200 |
---|---|---|
committer | attilamolnar <attilamolnar@hush.com> | 2012-09-30 03:04:07 +0200 |
commit | 02859be56d43bcece02aab350e02bc95ed1bf446 (patch) | |
tree | bbb68a91e26f4502c22047ad2b26ed8918c5fbb1 /src/modules/m_spanningtree/addline.cpp | |
parent | 83e90c4baa1215caf05295aec86a0a4d7bfff3f9 (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.cpp | 8 |
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 ¶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 { |