diff --git a/TelepathyQt/contact-manager.cpp b/TelepathyQt/contact-manager.cpp index a67e736..acbf5d0 100644 --- a/TelepathyQt/contact-manager.cpp +++ b/TelepathyQt/contact-manager.cpp @@ -1342,16 +1342,24 @@ void ContactManager::onAvatarRetrieved(uint handle, const QString &token, debug() << "MimeType:" << mimeType; QTemporaryFile mimeTypeFile(mimeTypeFileName); - mimeTypeFile.open(); - mimeTypeFile.write(mimeType.toLatin1()); - mimeTypeFile.setAutoRemove(false); - mimeTypeFile.rename(mimeTypeFileName); + if (mimeTypeFile.open()) { + mimeTypeFile.write(mimeType.toLatin1()); + mimeTypeFile.setAutoRemove(false); + QFile::remove(mimeTypeFileName); + if (!mimeTypeFile.rename(mimeTypeFileName)) { + mimeTypeFile.remove(); + } + } QTemporaryFile avatarFile(avatarFileName); - avatarFile.open(); - avatarFile.write(data); - avatarFile.setAutoRemove(false); - avatarFile.rename(avatarFileName); + if (avatarFile.open()) { + avatarFile.write(data); + avatarFile.setAutoRemove(false); + QFile::remove(avatarFileName); + if (!avatarFile.rename(avatarFileName)) { + avatarFile.remove(); + } + } } ContactPtr contact = lookupContactByHandle(handle);