From 076abde1b8c6f1d1b424b57038c1c530b4bd48ae Mon Sep 17 00:00:00 2001 From: Florian Zeitz Date: Mon, 3 Feb 2014 23:50:41 +0100 Subject: [PATCH] XMPPRoster: Ensure roster pushes were sent by the server --- src/XMPPRoster.m | 6 ++++++ 1 file changed, 6 insertions(+) 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];