Skip to content
Commit a41e69b3 authored by Elvis Angelaccio's avatar Elvis Angelaccio
Browse files

Fix crash after closing the window while loading a TAR archive

A first problem was in LibarchivePlugin::list() not checking
isInterruptionRequested() after the while loop. It was wrongly calling
emitCorruptArchive() instead of aborting as requested.

But according to the stacktrace, the actual crash seemed to be caused by
the for() loop over qAsConst(m_jobs):

    #0  0x00007ffff5f6a023 in QHashData::nextNode(QHashData::Node*) () from /usr/lib/libQt5Core.so.5
    #1  0x00007fffe1dcb2ec in QHash<KJob*, QHashDummyValue>::const_iterator::operator++ (this=0x7fffffffc4d0) at /usr/include/qt/QtCore/qhash.h:426
    #2  0x00007fffe1dcadac in QSet<KJob*>::const_iterator::operator++ (this=0x7fffffffc4d0) at /usr/include/qt/QtCore/qset.h:174
    #3  0x00007fffe1dca17e in JobTracker::~JobTracker (this=0x555555c319c0) at ../part/jobtracker.cpp:41

Porting to QSetIterator fixes the crash.

BUG: 410092
FIXED-IN: 20.12.2
parent 22997b58
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment