XMPPRoster: Ensure roster pushes were sent by the server

This commit is contained in:
Florian Zeitz 2014-02-03 23:50:41 +01:00
parent 3e150f18d6
commit 076abde1b8

View file

@ -110,6 +110,7 @@
OFXMLElement *rosterElement; OFXMLElement *rosterElement;
OFXMLElement *element; OFXMLElement *element;
XMPPRosterItem *rosterItem; XMPPRosterItem *rosterItem;
OFString *origin;
rosterElement = [iq elementForName: @"query" rosterElement = [iq elementForName: @"query"
namespace: XMPP_NS_ROSTER]; namespace: XMPP_NS_ROSTER];
@ -120,6 +121,11 @@
if (![[iq type] isEqual: @"set"]) if (![[iq type] isEqual: @"set"])
return false; return false;
// Ensure the roster push has been sent by the server
origin = [[iq from] fullJID];
if (origin != nil && ![origin isEqual: [[connection JID] bareJID]])
return false;
element = [rosterElement elementForName: @"item" element = [rosterElement elementForName: @"item"
namespace: XMPP_NS_ROSTER]; namespace: XMPP_NS_ROSTER];