Index: source/lobby/XmppClient.cpp =================================================================== --- source/lobby/XmppClient.cpp +++ source/lobby/XmppClient.cpp @@ -866,7 +866,13 @@ } if (gq) { - if (iq.from().full() == m_xpartamuppId && gq->m_Command == "register" && g_NetServer && !g_NetServer->GetUseSTUN()) + if (iq.from().full() != m_xpartamuppId) + { + LOGWARNING("XmppClient: Received game list response from unexpected sender: %s", iq.from().full()); + return true; + } + + if (gq->m_Command == "register" && g_NetServer && !g_NetServer->GetUseSTUN()) { if (gq->m_GameList.empty()) { @@ -894,6 +900,12 @@ } if (bq) { + if (iq.from().full() != m_echelonId) + { + LOGWARNING("XmppClient: Received board list response from unexpected sender: %s", iq.from().full()); + return true; + } + if (bq->m_Command == "boardlist") { for (const glooxwrapper::Tag* const& t : m_BoardList) @@ -921,6 +933,12 @@ } if (pq) { + if (iq.from().full() != m_echelonId) + { + LOGWARNING("XmppClient: Received profile response from unexpected sender: %s", iq.from().full()); + return true; + } + for (const glooxwrapper::Tag* const& t : m_Profile) glooxwrapper::Tag::free(t); m_Profile.clear();