diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-08-28 14:28:49 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-08-28 14:28:49 (GMT) |
commit | c6d782ee1c904330b82e3e1ce2b90baf49ead4de (patch) | |
tree | 3caf2e3971f8b475db6b658cfcef97a618b5f175 /Swiften/Avatars/VCardAvatarManager.cpp | |
parent | 17c78efa9452fc0619cbd73e124b66bc1f89fa5e (diff) | |
download | swift-contrib-c6d782ee1c904330b82e3e1ce2b90baf49ead4de.zip swift-contrib-c6d782ee1c904330b82e3e1ce2b90baf49ead4de.tar.bz2 |
Fix assertion on inconsistent VCard photohash cache.
Release-Notes: Don't crash when the VCard cache is inconsistent.
Diffstat (limited to 'Swiften/Avatars/VCardAvatarManager.cpp')
-rw-r--r-- | Swiften/Avatars/VCardAvatarManager.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Swiften/Avatars/VCardAvatarManager.cpp b/Swiften/Avatars/VCardAvatarManager.cpp index 046e6f3..a7e6fea 100644 --- a/Swiften/Avatars/VCardAvatarManager.cpp +++ b/Swiften/Avatars/VCardAvatarManager.cpp @@ -34,8 +34,13 @@ std::string VCardAvatarManager::getAvatarHash(const JID& jid) const { if (!hash.empty()) { if (!avatarStorage_->hasAvatar(hash)) { VCard::ref vCard = vcardManager_->getVCard(avatarJID); - assert(vCard); - avatarStorage_->addAvatar(hash, vCard->getPhoto()); + if (vCard) { + avatarStorage_->addAvatar(hash, vCard->getPhoto()); + } + else { + // Can happen if the cache is inconsistent. + hash = ""; + } } } return hash; |