-
Christian Mollekopf authored
This crash might have appeared when: * KIMAP::LoginJob fails with connectionLost * SessionPool::onLoginDone calls cancelSessionCreation * the emit connectDone will hiddenly leave the function and call IMAPResource::onConnectDone which again calls SessionPool::disconnect thus potentially deleting all Sessions (although with deleteLater()). * cancelSessionCreation later calls killSession again with the pointer that is potentially already deleted using deleteLater from the call to disconnect. * The code finally crashes in killSession when calling QObject::disconnect on the apparently invalid session pointer. The analysis is based on the backtrace in 322440 (duplicate of 319776). Note that this analysis makes only sense if the deleteLater was actually executed for some reason (we somehow entered the eventloop), and that I never managed to write a testcase reproducing the issue. Since I'm out of ideas I try anyways, also, code that leaves the function in the middle of the function due to signals gives me headaches. BUG: 319776 REVIEW: 114995
73dd22e5