From f91e11efc9ed2bf44455e0f39e73b6dfcc386e76 Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 5 Jun 2019 14:27:33 +0300 Subject: [PATCH] Fix crash in absent file reading. --- Telegram/SourceFiles/storage/localstorage.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/storage/localstorage.cpp b/Telegram/SourceFiles/storage/localstorage.cpp index 6ca56195cd..37ec784be3 100644 --- a/Telegram/SourceFiles/storage/localstorage.cpp +++ b/Telegram/SourceFiles/storage/localstorage.cpp @@ -3193,10 +3193,12 @@ FileLocation readFileLocation(MediaKey location) { location = aliasIt.value(); } - FileLocations::iterator i = _fileLocations.find(location); - if (i != _fileLocations.end()) { - if (i.value().inMediaCache()) { - int a = 0; + for (FileLocations::iterator i = _fileLocations.find(location); (i != _fileLocations.end()) && (i.key() == location);) { + if (!i.value().inMediaCache() && !i.value().check()) { + _fileLocationPairs.remove(i.value().fname); + i = _fileLocations.erase(i); + _writeLocations(); + continue; } return i.value(); }