summaryrefslogtreecommitdiff
path: root/sax
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-12-02 11:36:53 +0000
committerCaolán McNamara <caolanm@redhat.com>2014-12-02 14:53:01 +0000
commit4a757923fed5210d7bcf580865d53d4097dfbc8e (patch)
tree0c4b033e53be12e8bb895ff50e5d14c588b12193 /sax
parent9776af8215093f3d67cbfe58c87c8decd54b01d8 (diff)
fix crash-190212-093017-986
Change-Id: I3d2d57850dcb1fde1c004b4455591071a1fe03fa
Diffstat (limited to 'sax')
-rw-r--r--sax/source/fastparser/fastparser.cxx10
1 files changed, 8 insertions, 2 deletions
diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx
index ae0e8d8b42f4..92791fc84938 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();