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

Caolán McNamara caolanm at redhat.com
Mon Nov 6 21:27:44 UTC 2017


 svx/source/table/tablelayouter.cxx |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

New commits:
commit 133cc249c7a4881b5d53c06c1b660d3bf2cc03f7
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Nov 6 09:00:18 2017 +0000

    ofz#4072 Integer-overflow
    
    Change-Id: Ib94d4021be86e93e6ed0e836fbab0d8d0ca6f738
    Reviewed-on: https://gerrit.libreoffice.org/44346
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/svx/source/table/tablelayouter.cxx b/svx/source/table/tablelayouter.cxx
index 4eedf944b1bd..ea60278755d7 100644
--- a/svx/source/table/tablelayouter.cxx
+++ b/svx/source/table/tablelayouter.cxx
@@ -441,13 +441,17 @@ sal_Int32 TableLayouter::distribute( LayoutVector& rLayouts, sal_Int32 nDistribu
 
     do
     {
+        bConstrainsBroken = false;
+
         // first enforce minimum size constrains on all entities
         for( nIndex = 0; nIndex < nCount; ++nIndex )
         {
             Layout& rLayout = rLayouts[nIndex];
             if( rLayout.mnSize < rLayout.mnMinSize )
             {
-                nDistribute -= rLayout.mnMinSize - rLayout.mnSize;
+                sal_Int32 nDiff(0);
+                bConstrainsBroken |= o3tl::checked_sub(rLayout.mnMinSize, rLayout.mnSize, nDiff);
+                nDistribute -= nDiff;
                 rLayout.mnSize = rLayout.mnMinSize;
             }
         }
@@ -463,8 +467,6 @@ sal_Int32 TableLayouter::distribute( LayoutVector& rLayouts, sal_Int32 nDistribu
                 nCurrentWidth = o3tl::saturating_add(nCurrentWidth, rLayout.mnSize);
         }
 
-        bConstrainsBroken = false;
-
         // now distribute over entities
         if( (nCurrentWidth != 0) && (nDistribute != 0) )
         {


More information about the Libreoffice-commits mailing list