diff options
Diffstat (limited to 'vcl/headless/svpbmp.cxx')
-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; |