diff options
| author | Méven Car <[email protected]> | 2026-06-13 13:14:39 +0000 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2026-06-13 14:34:10 +0000 |
| commit | 99c87fe4314d392ae8d3e4cf9c05e3f014322608 (patch) | |
| tree | b2f8ddc6bf6a9a2c78ca405641f0260c2520e37a /src/icons | |
| parent | cc806587766d09f916de712b0b5e248ba0c5383c (diff) | |
versioncontrol: fix use-after-free of the current plugin
searchPlugin returns one of the observer-owned m_plugins, so m_currentPlugin
always aliases an entry in that list. Deleting m_currentPlugin in setModel
freed that object while leaving a dangling pointer in m_plugins, which the
next searchPlugin or actions call would dereference. setModel(nullptr) runs
on every directory change, so this was reachable when leaving a versioned
directory.
Make the observer the real owner: parent the plugins to it so QObject
deletes them, stop deleting the shared plugin in setModel (just clear the
current selection), and drop the matching delete in the destructor.
Diffstat (limited to 'src/icons')
0 files changed, 0 insertions, 0 deletions
