[Libreoffice-commits] core.git: lotuswordpro/source

Caolán McNamara caolanm at redhat.com
Thu Mar 1 12:56:13 UTC 2018


 lotuswordpro/source/filter/lwptablelayout.cxx |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

New commits:
commit ca3c3ac4bb100ac195e205f6ebfe6756d8a41174
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Mar 1 10:17:00 2018 +0000

    ofz: infinite loop
    
    Change-Id: I2c0ac101ccdd3f5359a885d976275fa6e63a3f67
    Reviewed-on: https://gerrit.libreoffice.org/50558
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/lotuswordpro/source/filter/lwptablelayout.cxx b/lotuswordpro/source/filter/lwptablelayout.cxx
index 33a7b412efa7..f12203db0c60 100644
--- a/lotuswordpro/source/filter/lwptablelayout.cxx
+++ b/lotuswordpro/source/filter/lwptablelayout.cxx
@@ -1107,14 +1107,18 @@ void LwpTableLayout::PutCellVals(LwpFoundry* pFoundry, LwpObjectID aTableID)
         LwpTableRange* pTableRange = pHolder ? dynamic_cast<LwpTableRange*>(pHolder->GetHeadID().obj().get()) : nullptr;
 
         //Look up the table
-        while (nullptr!=pTableRange)
+        std::set<LwpTableRange*> aTableSeen;
+        while (pTableRange)
         {
+            aTableSeen.insert(pTableRange);
             LwpObjectID aID = pTableRange->GetTableID();
             if (aID == aTableID)
             {
                 break;
             }
             pTableRange = pTableRange->GetNext();
+            if (aTableSeen.find(pTableRange) != aTableSeen.end())
+                throw std::runtime_error("loop in conversion");
         }
 
         if (!pTableRange)


More information about the Libreoffice-commits mailing list