diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-03-16 21:22:36 +0000 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2017-03-24 12:39:34 +0100 |
commit | af264a481eea8bd0e70e7623ca6628408d436963 (patch) | |
tree | f9a34cbe66e0d606f1c09f06ba8cf12f8b0f9e00 /filter | |
parent | aa571125a45cbd2586b2992d35a216d32b1ccf75 (diff) |
ofz: use after free
Change-Id: I6d3f9108b02149165b020fc9c6677880456a1ef4
Reviewed-on: https://gerrit.libreoffice.org/35299
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
(cherry picked from commit 958280a0332d1f9b3e702c79df6cb9b35eeb350c)
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/msfilter/svdfppt.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx index 4195188fe2be..27b38ad536c1 100644 --- a/filter/source/msfilter/svdfppt.cxx +++ b/filter/source/msfilter/svdfppt.cxx @@ -2905,7 +2905,18 @@ void SdrPowerPointImport::ImportPage( SdrPage* pRet, const PptSlidePersistEntry* // obsolete here, too. pRet->getSdrPageProperties().ClearItem(); pRet->getSdrPageProperties().PutItemSet(rSlidePersist.pBObj->GetMergedItemSet()); - SdrObject::Free( rSlidePersist.pBObj ); + if (rSlidePersist.pSolverContainer) + { + for (SvxMSDffConnectorRule* pPtr : rSlidePersist.pSolverContainer->aCList) + { + // check connections to the group object + if (pPtr->pAObj == rSlidePersist.pBObj) + pPtr->pAObj = nullptr; + if (pPtr->pBObj == rSlidePersist.pBObj) + pPtr->pBObj = nullptr; + } + } + SdrObject::Free(rSlidePersist.pBObj); } } } |