summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2011-08-28 14:28:49 (GMT)
committerRemko Tronçon <git@el-tramo.be>2011-08-28 14:28:49 (GMT)
commitc6d782ee1c904330b82e3e1ce2b90baf49ead4de (patch)
tree3caf2e3971f8b475db6b658cfcef97a618b5f175 /Swiften/Avatars/VCardAvatarManager.cpp
parent17c78efa9452fc0619cbd73e124b66bc1f89fa5e (diff)
downloadswift-c6d782ee1c904330b82e3e1ce2b90baf49ead4de.zip
swift-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.cpp9
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;