summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2017-06-30 12:43:21 +0200
committerMichael Stahl <mstahl@redhat.com>2017-06-30 17:14:56 +0200
commita54ba50db2c341f0f0e47d77dbe64a6e588bc911 (patch)
treee65db3973bb659b4a9e173fb47c2d01248a4f392 /include
parent495284716f49072e432b8425944cc67dfe0df0e0 (diff)
tdf#108863 svx: fix use-after-free in SdrEditView::DeleteMarkedObj()
The sdr::ViewSelection has multiple vectors with pointers to the same SdrObjects, and those are only cleared in sdr::ViewSelection::SetEdgesOfMarkedNodesDirty(), so deleting SdrObjects that are marked must be delayed until after that is called. Change-Id: I7ab18cb2116164a71dce29bf10eca974061ab424
Diffstat (limited to 'include')
-rw-r--r--include/svx/svdedtv.hxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/svx/svdedtv.hxx b/include/svx/svdedtv.hxx
index 81c680f1c085..039f56cae89b 100644
--- a/include/svx/svdedtv.hxx
+++ b/include/svx/svdedtv.hxx
@@ -154,7 +154,8 @@ protected:
// Removes all objects of the MarkList from their ObjLists including Undo.
// The entries in rMark remain.
- void DeleteMarkedList(const SdrMarkList& rMark); // DeleteMarked -> DeleteMarkedList
+ // @return a list of objects that must be deleted after the outermost EndUndo
+ std::vector<SdrObject *> DeleteMarkedList(SdrMarkList const& rMark); // DeleteMarked -> DeleteMarkedList
// Check possibilities of all marked objects
virtual void CheckPossibilities();