SignalManager::clear() deletes all of the global receiver callbacks without first disconnecting the receiver from the signal it's connected to. This can segfault when the callback is holding a last reference to an QObject is released, causing the QObject to be deleted, and a destroyed signal calls down a now invalid callback. One way to fix it might be just not to make callbacks if the program is shutting down, but a call to SignalManager::clear() before shutdown would still be unsafe.
-
Friedemann Kleint
-
John Ehresman
- Votes:
-
5 Vote for this issue
- Watchers:
-
10 Start watching this issue
- Created:
- Updated:
- Resolved:
There are no open Gerrit changes
Show
There are 2 closed Gerrit changes
Hide
There are 2 closed Gerrit changes
- GlobalReceiverV2: Fix double delete of receivers on exit
- Gerrit Review: