sw/qa/extras/ooxmlimport/data/fdo79535.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 11 +++++++++++ sw/source/core/doc/docredln.cxx | 3 ++- 3 files changed, 13 insertions(+), 1 deletion(-)
New commits: commit 8fcd4bf323bc3390e366229d549641444b5a3e9a Author: Tushar Bende <tushar.be...@synerzip.com> Date: Wed Jun 4 15:04:18 2014 +0530 fdo#79535 :LO writer crash while Opening some document. Problem Description : While setting ExtraData for Redline LO calls SwRangeRedline::SetExtraData() with argument of type SwRedlineExtraData_FormattingChanges* which contains SfxItemSet* In function SwRedlineExtraData_FormattingChanges() without Null checking SfxItemSet*, LO was trying to get rCpy.pSet->Count() which was the reason for segmentation fault while opening some documents in LO. Added Null check before accessing a pointer. Change-Id: I33299d2be2777ab6a8af0621595c9453145f1069 Reviewed-on: https://gerrit.libreoffice.org/9647 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/qa/extras/ooxmlimport/data/fdo79535.docx b/sw/qa/extras/ooxmlimport/data/fdo79535.docx new file mode 100644 index 0000000..64aab18 Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/fdo79535.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 14aa543..f003f33 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -2153,6 +2153,17 @@ DECLARE_OOXMLIMPORT_TEST(testFdo78883, "fdo78883.docx") CPPUNIT_ASSERT_EQUAL(sal_Int16(1), xCursor->getPage()); } +DECLARE_OOXMLIMPORT_TEST(testFdo79535, "fdo79535.docx") +{ + // fdo#79535 : LO was crashing while opening document + // Checking there is a single page after loading a doc successfully in LO. + uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY); + uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY); + uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY); + xCursor->jumpToLastPage(); + CPPUNIT_ASSERT_EQUAL(sal_Int16(1), xCursor->getPage()); +} + DECLARE_OOXMLIMPORT_TEST(testBnc875718, "bnc875718.docx") { // The frame in the footer must not accidentally end up in the document body. diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx index 64887a1..cb1520a 100644 --- a/sw/source/core/doc/docredln.cxx +++ b/sw/source/core/doc/docredln.cxx @@ -3204,7 +3204,8 @@ SwRedlineExtraData_FormattingChanges::SwRedlineExtraData_FormattingChanges( cons SwRedlineExtraData_FormattingChanges::SwRedlineExtraData_FormattingChanges( const SwRedlineExtraData_FormattingChanges& rCpy ) : SwRedlineExtraData() { - if( rCpy.pSet->Count() ) + // Checking pointer pSet before accessing it for Count + if( rCpy.pSet && rCpy.pSet->Count() ) { pSet = new SfxItemSet( *(rCpy.pSet) ); }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits