diff --git a/src/user.cpp b/src/user.cpp index c7d254286984f0346af24b532bc197ed8410a4c8..bedf30e63ecd74150d12ca6e01e0077dc4b74c9e 100644 --- a/src/user.cpp +++ b/src/user.cpp @@ -42,6 +42,7 @@ static LoggerPtr logger = Logger::getLogger("User"); User::User(const Swift::JID &jid, UserInfo &userInfo, Component *component, UserManager *userManager) { m_jid = jid; + m_data = NULL; m_component = component; m_presenceOracle = component->m_presenceOracle; @@ -190,6 +191,7 @@ void User::handleDisconnected(const std::string &error) { // Once in finishSession and once in m_userManager->removeUser. if (m_component->inServerMode()) { dynamic_cast(m_component->getStanzaChannel())->finishSession(m_jid, boost::shared_ptr(new Swift::StreamError())); + m_userManager->removeUser(this); } else { m_userManager->removeUser(this);