From a757e1b1300dde12fb865c1efd64bfd2bef00e2c Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 2 Dec 2014 14:51:09 +0000 Subject: Resolves: fdo#70157 fix crash on loading Change-Id: I0d248a195852c14cd95d4e337823076dd2fbc19d (cherry picked from commit 8302d048653d9ac25d3cb9ab9277df715053ad6a) --- oox/source/vml/vmlformatting.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'oox/source') diff --git a/oox/source/vml/vmlformatting.cxx b/oox/source/vml/vmlformatting.cxx index 40569703c1e5..c6859b5b5e3b 100644 --- a/oox/source/vml/vmlformatting.cxx +++ b/oox/source/vml/vmlformatting.cxx @@ -373,9 +373,13 @@ void ConversionHelper::decodeVmlPath( ::std::vector< ::std::vector< Point > >& r break; case CLOSE: // 0 param - rPointLists.back().push_back( rPointLists.back()[ 0 ] ); - rFlagLists.back().push_back( rFlagLists.back()[ 0 ] ); - aCurrentPoint = rPointLists.back().back(); + SAL_WARN_IF(rPointLists.back().empty() || rPointLists.back().empty(), "oox", "empty pointlists at close"); + if (!rPointLists.back().empty() && !rFlagLists.back().empty()) + { + rPointLists.back().push_back( rPointLists.back()[ 0 ] ); + rFlagLists.back().push_back( rFlagLists.back()[ 0 ] ); + aCurrentPoint = rPointLists.back().back(); + } break; case END: // 0 param -- cgit