diff --git a/src/XMPPRoster.m b/src/XMPPRoster.m index cb0d81a..7798c89 100644 --- a/src/XMPPRoster.m +++ b/src/XMPPRoster.m @@ -110,6 +110,7 @@ OFXMLElement *rosterElement; OFXMLElement *element; XMPPRosterItem *rosterItem; + OFString *origin; rosterElement = [iq elementForName: @"query" namespace: XMPP_NS_ROSTER]; @@ -120,6 +121,11 @@ if (![[iq type] isEqual: @"set"]) 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" namespace: XMPP_NS_ROSTER];