┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistselectionmanager.cpp
diff options
context:
space:
mode:
authorMéven Car <[email protected]>2026-06-13 13:14:39 +0000
committerMéven Car <[email protected]>2026-06-13 14:34:10 +0000
commit99c87fe4314d392ae8d3e4cf9c05e3f014322608 (patch)
treeb2f8ddc6bf6a9a2c78ca405641f0260c2520e37a /src/kitemviews/kitemlistselectionmanager.cpp
parentcc806587766d09f916de712b0b5e248ba0c5383c (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/kitemviews/kitemlistselectionmanager.cpp')
0 files changed, 0 insertions, 0 deletions