Prevent crash due to race condition when adding magnet link

PR #19792.
Closes #19780.
Closes #19790.
This commit is contained in:
Vladimir Golovnev 2023-10-28 10:41:53 +03:00 committed by Vladimir Golovnev (Glassez)
parent 4b56bdd36f
commit 42d7465cba
No known key found for this signature in database
GPG key ID: 52A2C7DEE2DFA6F7

View file

@ -2435,6 +2435,11 @@ bool SessionImpl::cancelDownloadMetadata(const TorrentID &id)
return false;
const lt::torrent_handle nativeHandle = downloadedMetadataIter.value();
m_downloadedMetadata.erase(downloadedMetadataIter);
if (!nativeHandle.is_valid())
return true;
#ifdef QBT_USES_LIBTORRENT2
const InfoHash infoHash {nativeHandle.info_hashes()};
if (infoHash.isHybrid())
@ -2445,7 +2450,7 @@ bool SessionImpl::cancelDownloadMetadata(const TorrentID &id)
m_downloadedMetadata.remove((altID == downloadedMetadataIter.key()) ? id : altID);
}
#endif
m_downloadedMetadata.erase(downloadedMetadataIter);
m_nativeSession->remove_torrent(nativeHandle, lt::session::delete_files);
return true;
}