From 574c8dfbc798df444899b4907efc50a40ec6e4a4 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 21 Dec 2016 10:35:57 -0500 Subject: Fix previous commit, deleting sessions removes it from the map which invalidates the reference --- modules/m_sasl.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'modules/m_sasl.cpp') diff --git a/modules/m_sasl.cpp b/modules/m_sasl.cpp index 3dff6c41f..cb7030bb4 100644 --- a/modules/m_sasl.cpp +++ b/modules/m_sasl.cpp @@ -150,7 +150,7 @@ class SASLService : public SASL::Service, public Timer } } - Session* &session = sessions[m.source]; + Session* session = GetSession(m.source); if (m.type == "S") { @@ -178,18 +178,22 @@ class SASLService : public SASL::Service, public Timer { session->hostname = hostname; session->ip = ip; + + sessions[m.source] = session; } } else if (m.type == "D") { delete session; - sessions.erase(m.source); return; } else if (m.type == "H") { if (!session) + { session = new Session(NULL, m.source); + sessions[m.source] = session; + } session->hostname = m.data; session->ip = m.ext; } -- cgit