diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-06-17 21:16:34 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-07-13 14:38:32 +0200 |
commit | 1487b26a150b898a61b201e849e2f18f7f14de4c (patch) | |
tree | f92ee7d54eaf3bfe81d0fb61b74e6140eacdf23d /vcl/headless | |
parent | 0018fd1b81b3c4ec5ee1de092760479aeae7cd96 (diff) |
ofz#2287 check multiply
Change-Id: Ibc4c93ac1f5686a476b5e303347dc951daa58e33
Reviewed-on: https://gerrit.libreoffice.org/38909
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/headless')
-rw-r--r-- | vcl/headless/svpbmp.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/vcl/headless/svpbmp.cxx b/vcl/headless/svpbmp.cxx index 15c6fc9c1022..b8c70123a39b 100644 --- a/vcl/headless/svpbmp.cxx +++ b/vcl/headless/svpbmp.cxx @@ -132,8 +132,10 @@ BitmapBuffer* ImplCreateDIB( pDIB->maPalette.SetEntryCount( nColors ); } - const size_t size = pDIB->mnScanlineSize * pDIB->mnHeight; - if (size > SAL_MAX_INT32/2) + size_t size; + bFail = o3tl::checked_multiply<size_t>(pDIB->mnHeight, pDIB->mnScanlineSize, size); + SAL_WARN_IF(bFail, "vcl.gdi", "checked multiply failed"); + if (bFail || size > SAL_MAX_INT32/2) { delete pDIB; return nullptr; |