Merge pull request #12603 from glassez/fix-crash

Fix crash when torrent is deleted on limit reached
This commit is contained in:
Vladimir Golovnev 2020-04-24 07:45:35 +03:00 committed by GitHub
commit 4b897e7702
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1693,7 +1693,10 @@ void Session::processShareLimits()
{
qDebug("Processing share limits...");
for (TorrentHandleImpl *const torrent : asConst(m_torrents)) {
// We shouldn't iterate over `m_torrents` in the loop below
// since `deleteTorrent()` modifies it indirectly
const QHash<InfoHash, TorrentHandleImpl *> torrents {m_torrents};
for (TorrentHandleImpl *const torrent : torrents) {
if (torrent->isSeed() && !torrent->isForced()) {
if (torrent->ratioLimit() != TorrentHandle::NO_RATIO_LIMIT) {
const qreal ratio = torrent->realRatio();