vcl/headless/svpbmp.cxx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
New commits: commit 600f22fa3e718c36f3d8f47710df1dbbe0d0c4c2 Author: Caolán McNamara <[email protected]> Date: Fri Jan 6 13:46:53 2017 +0000 use same logic in both Creates Change-Id: I49dab360c5f93e40f5a6e91fbe721935d795472c diff --git a/vcl/headless/svpbmp.cxx b/vcl/headless/svpbmp.cxx index e7d367a..d11f3b9 100644 --- a/vcl/headless/svpbmp.cxx +++ b/vcl/headless/svpbmp.cxx @@ -121,7 +121,7 @@ BitmapBuffer* ImplCreateDIB( pDIB->maPalette.SetEntryCount( nColors ); } - size_t size = pDIB->mnScanlineSize * pDIB->mnHeight; + const size_t size = pDIB->mnScanlineSize * pDIB->mnHeight; if (size > SAL_MAX_INT32) { delete pDIB; @@ -176,10 +176,18 @@ bool SvpSalBitmap::Create(const SalBitmap& rBmp) { // TODO: reference counting... mpDIB = new BitmapBuffer( *rSalBmp.mpDIB ); + + const size_t size = mpDIB->mnScanlineSize * mpDIB->mnHeight; + if (size > SAL_MAX_INT32) + { + delete mpDIB; + mpDIB = nullptr; + return false; + } + // TODO: get rid of this when BitmapBuffer gets copy constructor try { - size_t size = mpDIB->mnScanlineSize * mpDIB->mnHeight; mpDIB->mpBits = new sal_uInt8[size]; std::memcpy(mpDIB->mpBits, rSalBmp.mpDIB->mpBits, size); }
_______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
