diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-12-27 18:54:57 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-12-27 18:57:02 +0000 |
commit | abec3df5d8412231ccad7fefd9dd2b222269ed22 (patch) | |
tree | 0a3e606e0bb971c7102e3a23dfd2dba8fd3e4a8c /sw | |
parent | d77d0d8e2fabc9dfc9eef3e532c31351632fb7b7 (diff) |
ofz#4725 Integer-overflow
Change-Id: I74e065b8ba00dc80559bb64cf1bdefa5f9f5b480
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/filter/html/svxcss1.cxx | 16 |
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: |