[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-4.2' - 2 commits - sax/source

Kohei Yoshida kohei.yoshida at collabora.com
Mon Jun 30 11:04:40 PDT 2014


 sax/source/fastparser/fastparser.cxx |    9 +++++++++
 1 file changed, 9 insertions(+)

New commits:
commit 313b2c4973a367c3c2ac3e0677e5166f4d6a2e85
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Mon Jun 30 14:01:16 2014 -0400

    Check for empty() before calling top().
    
    Else it might crash sometimes.
    
    Change-Id: I6a24fff83c3d36346debae5c0f2b8c0646a15c01
    (cherry picked from commit 3f177756dbdb67d901453000c3f11694770d2761)

diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx
index aa75513..4ddbd2a 100644
--- a/sax/source/fastparser/fastparser.cxx
+++ b/sax/source/fastparser/fastparser.cxx
@@ -688,6 +688,9 @@ sal_Int32 FastSaxParserImpl::GetTokenWithPrefix( const sal_Char*pPrefix, int nPr
     sal_Int32 nNamespaceToken = FastToken::DONTKNOW;
 
     Entity& rEntity = getEntity();
+    if (rEntity.maNamespaceCount.empty())
+        return nNamespaceToken;
+
     sal_uInt32 nNamespace = rEntity.maNamespaceCount.top();
     while( nNamespace-- )
     {
commit b8255bc0ac513af5d9bc7ae026caf885f71569c6
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Mon Jun 30 13:43:55 2014 -0400

    Don't go further and pop the stack if it's empty.
    
    Change-Id: I27bd30ca65cf0066cd022b4b060757913ea01fed
    (cherry picked from commit 3ede68e1cc879e6adbf6336eccaf88ced974b8b6)

diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx
index 0cfdb14..aa75513 100644
--- a/sax/source/fastparser/fastparser.cxx
+++ b/sax/source/fastparser/fastparser.cxx
@@ -492,6 +492,12 @@ void Entity::characters( const OUString& sChars )
 
 void Entity::endElement()
 {
+    if (maContextStack.empty())
+    {
+        // Malformed XML stream !?
+        return;
+    }
+
     const SaxContext& aContext = maContextStack.top();
     const Reference< XFastContextHandler >& xContext( aContext.mxContext );
     if( xContext.is() ) try


More information about the Libreoffice-commits mailing list