[Libreoffice-commits] core.git: Branch 'libreoffice-5-4' - oox/source

Caolán McNamara caolanm at redhat.com
Fri Dec 1 15:40:38 UTC 2017


 oox/source/drawingml/table/tableproperties.cxx |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

New commits:
commit 7f81a748d2860968c3843984da24426e9806e436
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Dec 1 09:02:04 2017 +0000

    ofz: check col/row bounds
    
    Change-Id: Idaa38f400873372330dd06c14800c4a5018c79db
    Reviewed-on: https://gerrit.libreoffice.org/45641
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
    Tested-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>

diff --git a/oox/source/drawingml/table/tableproperties.cxx b/oox/source/drawingml/table/tableproperties.cxx
index d4c5bdc56d39..a692ea3682c1 100644
--- a/oox/source/drawingml/table/tableproperties.cxx
+++ b/oox/source/drawingml/table/tableproperties.cxx
@@ -58,7 +58,8 @@ void CreateTableRows( const uno::Reference< XTableRows >& xTableRows, const std:
         xTableRows->insertByIndex( 0, rvTableRows.size() - 1 );
     std::vector< TableRow >::const_iterator aTableRowIter( rvTableRows.begin() );
     uno::Reference< container::XIndexAccess > xIndexAccess( xTableRows, UNO_QUERY_THROW );
-    for ( sal_Int32 n = 0; n < xIndexAccess->getCount(); n++ )
+    sal_Int32 nCols = std::min<sal_Int32>(xIndexAccess->getCount(), rvTableRows.size());
+    for (sal_Int32 n = 0; n < nCols; ++n)
     {
         Reference< XPropertySet > xPropSet( xIndexAccess->getByIndex( n ), UNO_QUERY_THROW );
         xPropSet->setPropertyValue( "Height", Any( static_cast< sal_Int32 >( aTableRowIter->getHeight() / 360 ) ) );
@@ -72,7 +73,8 @@ void CreateTableColumns( const Reference< XTableColumns >& xTableColumns, const
         xTableColumns->insertByIndex( 0, rvTableGrid.size() - 1 );
     std::vector< sal_Int32 >::const_iterator aTableGridIter( rvTableGrid.begin() );
     uno::Reference< container::XIndexAccess > xIndexAccess( xTableColumns, UNO_QUERY_THROW );
-    for ( sal_Int32 n = 0; n < xIndexAccess->getCount(); n++ )
+    sal_Int32 nCols = std::min<sal_Int32>(xIndexAccess->getCount(), rvTableGrid.size());
+    for (sal_Int32 n = 0; n < nCols; ++n)
     {
         Reference< XPropertySet > xPropSet( xIndexAccess->getByIndex( n ), UNO_QUERY_THROW );
         xPropSet->setPropertyValue( "Width", Any( static_cast< sal_Int32 >( *aTableGridIter++ / 360 ) ) );


More information about the Libreoffice-commits mailing list