diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-12-01 09:02:04 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-12-01 10:03:32 +0100 |
commit | 7d1d5a847db8d3245a2694295a7c369586695ff8 (patch) | |
tree | 8ddb31ee25bdfacfcb063425351c0011cb81d27e /oox | |
parent | bb1fd2c9819d1ee5ba26c181d8fea8272b89b673 (diff) |
ofz: check col/row bounds
Change-Id: Idaa38f400873372330dd06c14800c4a5018c79db
Reviewed-on: https://gerrit.libreoffice.org/45639
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/drawingml/table/tableproperties.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/oox/source/drawingml/table/tableproperties.cxx b/oox/source/drawingml/table/tableproperties.cxx index e5bc4f0cc3d5..527b65829d17 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 ) ) ); |