From e63e300ac42faa7df52cf2bc7b62226be6b8e1ee Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Wed, 1 Aug 2018 09:04:58 +0100 Subject: forcepoint#56 null deref Change-Id: Iaa9c4d6901a340145412fa46eaf5c292c3fb62e8 Reviewed-on: https://gerrit.libreoffice.org/58387 Tested-by: Jenkins Reviewed-by: Michael Stahl (cherry picked from commit 0845c1a74aef650b4aebaeea9587b3bfb5b38ffb) --- writerfilter/source/dmapper/DomainMapper_Impl.cxx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 02b954e0922c..b9ff4c2946e8 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -2730,15 +2730,17 @@ void DomainMapper_Impl::PushFieldContext() TagLogger::getInstance().element("pushFieldContext"); #endif - uno::Reference< text::XTextAppend > xTextAppend; + uno::Reference xCrsr; if (!m_aTextAppendStack.empty()) - xTextAppend = m_aTextAppendStack.top().xTextAppend; - uno::Reference< text::XTextRange > xStart; - if (xTextAppend.is()) { - uno::Reference< text::XTextCursor > xCrsr = xTextAppend->createTextCursorByRange( xTextAppend->getEnd() ); - xStart = xCrsr->getStart(); + uno::Reference xTextAppend = m_aTextAppendStack.top().xTextAppend; + if (xTextAppend.is()) + xCrsr = xTextAppend->createTextCursorByRange(xTextAppend->getEnd()); } + + uno::Reference< text::XTextRange > xStart; + if (xCrsr.is()) + xStart = xCrsr->getStart(); m_aFieldStack.push( std::make_shared( xStart ) ); } /*------------------------------------------------------------------------- -- cgit