[Libreoffice-commits] .: Branch 'libreoffice-4-0' - starmath/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Dec 18 06:50:33 PST 2012


 starmath/source/ooxmlimport.cxx |    8 ++++----
 starmath/source/ooxmlimport.hxx |    2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

New commits:
commit c237369bc2f4a1931e241c8f6efd7c2854ee657b
Author: Luboš Luňák <l.lunak at suse.cz>
Date:   Tue Dec 18 15:48:15 2012 +0100

    avoid infinite loop when parsing malformed ooxml math (fdo#57886)
    
    Change-Id: I2f66bc335795a9e84f532fb28d3585aed783ebd6

diff --git a/starmath/source/ooxmlimport.cxx b/starmath/source/ooxmlimport.cxx
index c83fc9b..0b1beda 100644
--- a/starmath/source/ooxmlimport.cxx
+++ b/starmath/source/ooxmlimport.cxx
@@ -69,7 +69,7 @@ OUString SmOoxmlImport::handleStream()
     {
         // strictly speaking, it is not OMathArg here, but currently supported
         // functionality is the same like OMathArg, in the future this may need improving
-        OUString item = readOMathArg();
+        OUString item = readOMathArg( M_TOKEN( oMath ));
         if( item.isEmpty())
             continue;
         if( !ret.isEmpty())
@@ -87,10 +87,10 @@ OUString SmOoxmlImport::handleStream()
     return ret;
 }
 
-OUString SmOoxmlImport::readOMathArg()
+OUString SmOoxmlImport::readOMathArg( int stoptoken )
 {
     OUString ret;
-    while( !stream.atEnd() && stream.currentToken() != CLOSING( stream.currentToken()))
+    while( !stream.atEnd() && stream.currentToken() != CLOSING( stoptoken ))
     {
         if( !ret.isEmpty())
             ret += " ";
@@ -164,7 +164,7 @@ OUString SmOoxmlImport::readOMathArg()
 OUString SmOoxmlImport::readOMathArgInElement( int token )
 {
     stream.ensureOpeningTag( token );
-    OUString ret = readOMathArg();
+    OUString ret = readOMathArg( token );
     stream.ensureClosingTag( token );
     return ret;
 }
diff --git a/starmath/source/ooxmlimport.hxx b/starmath/source/ooxmlimport.hxx
index bdb8348..6e4835d 100644
--- a/starmath/source/ooxmlimport.hxx
+++ b/starmath/source/ooxmlimport.hxx
@@ -63,7 +63,7 @@ private:
     OUString handleSsub();
     OUString handleSsubsup();
     OUString handleSsup();
-    OUString readOMathArg();
+    OUString readOMathArg( int stoptoken );
     OUString readOMathArgInElement( int token );
     oox::formulaimport::XmlStream& stream;
 };


More information about the Libreoffice-commits mailing list