Revision e9e9072...

Go back to digest for 18th November 2012

Bug 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
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

FIXED-IN: 4.10
REVIEW: 107339

File Changes

Modified 1 files
  • services/storage/query/folder.cpp
1 files changed in total