Revision e9e9072...
Go back to digest for 18th November 2012Bug Fixes in KDE Base
Simeon Bird committed changes in [nepomuk-core] services/storage/query/folder.cpp:
Fix convoluted crash on deletion of Query::Folder.
Sequence of events seems to be:
1. Folder::~Folder called.
2. SearchRunnable->cancel called => SearchRunnable->m_folder = 0.
3. Deletes all connections.
4. deleteLater called again, during destructor (is this ever safe?)
5. SearchRunnable::run called => since m_folder is zero, returns and
deletes SearchRunnable without setting m_folder -> SearchRunnable to
zero.
6. mutex unlocked at end of destructor
7. Folder::~Folder called again by queued deleteLater (?)
8. SearchRunnable already deleted after step 5. Crash.
Fixed by setting m_currentSearchRunnable = 0 after cancelling the folder
listing.
FIXED-IN: 4.10
REVIEW: 107339
File Changes
Modified 1 files
- services/storage/query/folder.cpp
1 files changed in total