diff options
author | Lionel Elie Mamane <lionel@mamane.lu> | 2012-09-14 14:53:20 +0200 |
---|---|---|
committer | Fridrich Strba <fridrich@documentfoundation.org> | 2012-09-14 16:20:16 +0000 |
commit | bacceec11fc1e9d4999308040ae36848c24376d4 (patch) | |
tree | 2b8f20e232992c0b2a50568a2809460f504cfd7e | |
parent | 4fcdc546f065ef2b4098fa3de12325687f1e3389 (diff) |
fdo#44721 protect against negative calculated height value
Change-Id: I4faedd535421eaf1e3e425f4731b3bb8831e7360
Reviewed-on: https://gerrit.libreoffice.org/623
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
-rw-r--r-- | reportdesign/source/core/sdr/RptObject.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/reportdesign/source/core/sdr/RptObject.cxx b/reportdesign/source/core/sdr/RptObject.cxx index f1c6e4d081e0..2502334ca49b 100644 --- a/reportdesign/source/core/sdr/RptObject.cxx +++ b/reportdesign/source/core/sdr/RptObject.cxx @@ -410,8 +410,10 @@ void OObjectBase::SetPropsFromRect(const Rectangle& _rRect) if ( pPage && !_rRect.IsEmpty() ) { uno::Reference<report::XSection> xSection = pPage->getSection(); - if ( xSection.is() && (static_cast<sal_uInt32>(_rRect.getHeight() + _rRect.Top()) > xSection->getHeight()) ) - xSection->setHeight(_rRect.getHeight() + _rRect.Top()); + assert(_rRect.getHeight() >= 0); + const sal_uInt32 newHeight( ::std::max(0l, _rRect.getHeight()+_rRect.Top()) ); + if ( xSection.is() && ( newHeight > xSection->getHeight() ) ) + xSection->setHeight( newHeight ); // TODO //pModel->GetRefDevice()->Invalidate(INVALIDATE_CHILDREN); |