summaryrefslogtreecommitdiff
path: root/reportdesign
diff options
context:
space:
mode:
authorLionel Elie Mamane <lionel@mamane.lu>2012-09-14 14:53:20 +0200
committerMichael Meeks <michael.meeks@suse.com>2012-09-17 09:54:04 +0000
commit9d270d24de55d0f962cd3394b8ebf9d3e4622dfb (patch)
tree34dc4f4874937d163b2b1d9d311a84f4885d971c /reportdesign
parent1f728eea3185856c39ef5bb4b7e3da8986f2ebdf (diff)
fdo#44721 protect against negative calculated height value
Change-Id: I4faedd535421eaf1e3e425f4731b3bb8831e7360 Reviewed-on: https://gerrit.libreoffice.org/622 Reviewed-by: Michael Meeks <michael.meeks@suse.com> Tested-by: Michael Meeks <michael.meeks@suse.com>
Diffstat (limited to 'reportdesign')
-rw-r--r--reportdesign/source/core/sdr/RptObject.cxx6
1 files changed, 4 insertions, 2 deletions
diff --git a/reportdesign/source/core/sdr/RptObject.cxx b/reportdesign/source/core/sdr/RptObject.cxx
index dd142d48826a..699a755e8902 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);