sc/source/filter/rtf/rtfparse.cxx | 2 ++ 1 file changed, 2 insertions(+)
New commits: commit 82173efd8e639f387c87763a069ddad643b447d6 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Nov 2 16:48:10 2017 +0000 crash on loading tdf77861-3.rtf in calc rtf filter pActDefault is either pInsDefault or a member of maDefaultList, so clear it if its not pInsDefault at this location ScRTFParser::ProcToken(RtfImportInfo*) (rtfparse.cxx:332) ScRTFParser::RTFImportHdl(RtfImportInfo&) (rtfparse.cxx:160) ScRTFParser::LinkStubRTFImportHdl(void*, RtfImportInfo&) (rtfparse.cxx:155) Link<RtfImportInfo&, void>::Call(RtfImportInfo&) const (link.hxx:84) EditEngine::CallRtfImportHandler(RtfImportInfo&) (editeng.cxx:2770) EditRTFParser::NextToken(int) (eertfpar.cxx:231) SvRTFParser::Continue(int) (parrtf.cxx:643) SvxRTFParser::Continue(int) (svxrtf.cxx:128) SvRTFParser::CallParser() (parrtf.cxx:574) SvxRTFParser::CallParser() (svxrtf.cxx:123) EditRTFParser::CallParser() (eertfpar.cxx:112) ImpEditEngine::ReadRTF(SvStream&, EditSelection) (impedit4.cxx:161) Address is 52 bytes inside a block of size 56 free'd std::default_delete<ScRTFCellDefault>::operator()(ScRTFCellDefault*) const (unique_ptr.h:76) std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >::~unique_ptr() (unique_ptr.h:239) void std::_Destroy<std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> > >(std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >*) (stl_construct.h:93) void std::_Destroy_aux<false>::__destroy<std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >*>(std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >*, std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >*) (stl_construct.h:103) void std::_Destroy<std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >*>(std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >*, std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >*) (stl_construct.h:126) void std::_Destroy<std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >*, std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> > >(std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >*, std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >*, std::allocator<std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> > >&) (stl_construct.h:151) std::__cxx1998::vector<std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >, std::allocator<std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> > > >::_M_erase_at_end(std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >*) (stl_vector.h:1436) std::__cxx1998::vector<std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >, std::allocator<std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> > > >::clear() (stl_vector.h:1210) std::__debug::vector<std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> >, std::allocator<std::unique_ptr<ScRTFCellDefault, std::default_delete<ScRTFCellDefault> > > >::clear() (vector:690) ScRTFParser::ProcToken(RtfImportInfo*) (rtfparse.cxx:274) ScRTFParser::RTFImportHdl(RtfImportInfo&) (rtfparse.cxx:160) Change-Id: I36624a76ddb01f0d26d38f708af6b910384ad7fd Reviewed-on: https://gerrit.libreoffice.org/44226 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> diff --git a/sc/source/filter/rtf/rtfparse.cxx b/sc/source/filter/rtf/rtfparse.cxx index d5262fd13a16..00c207174ae6 100644 --- a/sc/source/filter/rtf/rtfparse.cxx +++ b/sc/source/filter/rtf/rtfparse.cxx @@ -272,6 +272,8 @@ void ScRTFParser::ProcToken( RtfImportInfo* pInfo ) nLastWidth = maDefaultList.back()->nTwips; nColCnt = 0; + if (pActDefault != pInsDefault) + pActDefault = nullptr; maDefaultList.clear(); pDefMerge = nullptr; nRtfLastToken = pInfo->nToken;
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits