summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-06-17 21:16:34 +0100
committerEike Rathke <erack@redhat.com>2017-06-22 00:03:22 +0200
commit8f81f6f743094d05a49f65c0f1ec8d99654780e6 (patch)
tree3b042cf115f41f12e655e5681ba763361f52bb58
parent14141f72d6019cad66796ab12aaec686ae4db439 (diff)
ofz#2287 check multiply
Change-Id: Ibc4c93ac1f5686a476b5e303347dc951daa58e33 Reviewed-on: https://gerrit.libreoffice.org/38910 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
-rw-r--r--vcl/headless/svpbmp.cxx6
1 files changed, 4 insertions, 2 deletions
diff --git a/vcl/headless/svpbmp.cxx b/vcl/headless/svpbmp.cxx
index 5be976fc9e74..5ff0b0a978ee 100644
--- a/vcl/headless/svpbmp.cxx
+++ b/vcl/headless/svpbmp.cxx
@@ -135,8 +135,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;