oox/source/vml/vmlformatting.cxx | 10 +++++++--- sax/source/fastparser/fastparser.cxx | 10 ++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-)
New commits: commit 8302d048653d9ac25d3cb9ab9277df715053ad6a Author: Caolán McNamara <caol...@redhat.com> Date: Tue Dec 2 14:51:09 2014 +0000 Resolves: fdo#70157 fix crash on loading Change-Id: I0d248a195852c14cd95d4e337823076dd2fbc19d diff --git a/oox/source/vml/vmlformatting.cxx b/oox/source/vml/vmlformatting.cxx index 4056970..c6859b5 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 commit 4a757923fed5210d7bcf580865d53d4097dfbc8e Author: Caolán McNamara <caol...@redhat.com> Date: Tue Dec 2 11:36:53 2014 +0000 fix crash-190212-093017-986 Change-Id: I3d2d57850dcb1fde1c004b4455591071a1fe03fa diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx index ae0e8d8..92791fc 100644 --- a/sax/source/fastparser/fastparser.cxx +++ b/sax/source/fastparser/fastparser.cxx @@ -463,6 +463,12 @@ void Entity::startElement( Event *pEvent ) void Entity::characters( const OUString& sChars ) { + if (maContextStack.empty()) + { + // Malformed XML stream !? + return; + } + const Reference< XFastContextHandler >& xContext( maContextStack.top().mxContext ); if( xContext.is() ) try { @@ -1140,11 +1146,11 @@ void FastSaxParserImpl::callbackEndElement( const xmlChar*, const xmlChar*, cons if( !pendingCharacters.isEmpty()) sendPendingCharacters(); Entity& rEntity = getEntity(); - assert( !rEntity.maNamespaceCount.empty() ); + SAL_WARN_IF(rEntity.maNamespaceCount.empty(), "sax", "Empty NamespaceCount"); if( !rEntity.maNamespaceCount.empty() ) rEntity.maNamespaceCount.pop(); - assert( !rEntity.maNamespaceStack.empty() ); + SAL_WARN_IF(rEntity.maNamespaceStack.empty(), "sax", "Empty NamespaceStack"); if( !rEntity.maNamespaceStack.empty() ) rEntity.maNamespaceStack.pop();
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits