summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-12-27 18:54:57 +0000
committerCaolán McNamara <caolanm@redhat.com>2017-12-27 18:57:02 +0000
commitabec3df5d8412231ccad7fefd9dd2b222269ed22 (patch)
tree0a3e606e0bb971c7102e3a23dfd2dba8fd3e4a8c
parentd77d0d8e2fabc9dfc9eef3e532c31351632fb7b7 (diff)
ofz#4725 Integer-overflow
Change-Id: I74e065b8ba00dc80559bb64cf1bdefa5f9f5b480
-rw-r--r--sw/source/filter/html/svxcss1.cxx16
1 files changed, 12 insertions, 4 deletions
diff --git a/sw/source/filter/html/svxcss1.cxx b/sw/source/filter/html/svxcss1.cxx
index 559e4e7cb197..881a059c8854 100644
--- a/sw/source/filter/html/svxcss1.cxx
+++ b/sw/source/filter/html/svxcss1.cxx
@@ -2296,10 +2296,18 @@ static void ParseCSS1_margin( const CSS1Expression *pExpr,
break;
case CSS1_PIXLENGTH:
{
- long nPWidth = 0;
- nMargin = (long)pExpr->GetNumber();
- SvxCSS1Parser::PixelToTwip( nPWidth, nMargin );
- bSetThis = true;
+ auto fMargin = pExpr->GetNumber();
+ if (fMargin < SAL_MAX_INT32/2 && fMargin > SAL_MIN_INT32/2)
+ {
+ nMargin = (long)fMargin;
+ long nPWidth = 0;
+ SvxCSS1Parser::PixelToTwip( nPWidth, nMargin );
+ bSetThis = true;
+ }
+ else
+ {
+ SAL_WARN("sw.html", "out-of-size pxlength: " << fMargin);
+ }
}
break;
case CSS1_PERCENTAGE: