diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-02-05 15:56:47 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-02-05 15:56:47 (GMT) |
commit | 374ebf0f8c32c4fd8758af4b8381ac5cff0d151c (patch) | |
tree | c89be053096b0025f3839d97b5ae08b102335054 /Swiften/Roster/XMPPRosterController.cpp | |
parent | d18f20669671991825230fe956acd472cca999fc (diff) | |
download | swift-contrib-374ebf0f8c32c4fd8758af4b8381ac5cff0d151c.zip swift-contrib-374ebf0f8c32c4fd8758af4b8381ac5cff0d151c.tar.bz2 |
Don't crash when receiving null roster payload.
Diffstat (limited to 'Swiften/Roster/XMPPRosterController.cpp')
-rw-r--r-- | Swiften/Roster/XMPPRosterController.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/Swiften/Roster/XMPPRosterController.cpp b/Swiften/Roster/XMPPRosterController.cpp index 62bebc3..909ef8e 100644 --- a/Swiften/Roster/XMPPRosterController.cpp +++ b/Swiften/Roster/XMPPRosterController.cpp @@ -39,12 +39,14 @@ void XMPPRosterController::requestRoster() { } void XMPPRosterController::handleRosterReceived(boost::shared_ptr<RosterPayload> rosterPayload) { - foreach(const RosterItemPayload& item, rosterPayload->getItems()) { - //Don't worry about the updated case, the XMPPRoster sorts that out. - if (item.getSubscription() == RosterItemPayload::Remove) { - xmppRoster_->removeContact(item.getJID()); - } else { - xmppRoster_->addContact(item.getJID(), item.getName(), item.getGroups(), item.getSubscription()); + if (rosterPayload) { + foreach(const RosterItemPayload& item, rosterPayload->getItems()) { + //Don't worry about the updated case, the XMPPRoster sorts that out. + if (item.getSubscription() == RosterItemPayload::Remove) { + xmppRoster_->removeContact(item.getJID()); + } else { + xmppRoster_->addContact(item.getJID(), item.getName(), item.getGroups(), item.getSubscription()); + } } } } |