diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-01-06 13:46:53 +0000 |
---|---|---|
committer | Ashod Nakashian <ashod.nakashian@collabora.co.uk> | 2017-12-18 01:07:38 -0500 |
commit | 6625510ed71bf11fc91eae3642efbb2a6206cbaa (patch) | |
tree | ade3bb79a8d13eb49f8244c782180ac1c95f5581 | |
parent | ffafd1494084626081e37da1d37c1b2f78c752cb (diff) |
use same logic in both Creates
(cherry picked from commit 600f22fa3e718c36f3d8f47710df1dbbe0d0c4c2)
Change-Id: I49dab360c5f93e40f5a6e91fbe721935d795472c
(cherry picked from commit 3baff350e475524585b219c6c79ae72a99f1ac49)
-rw-r--r-- | vcl/headless/svpbmp.cxx | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/vcl/headless/svpbmp.cxx b/vcl/headless/svpbmp.cxx index ef175e8838f3..967fd910bec3 100644 --- a/vcl/headless/svpbmp.cxx +++ b/vcl/headless/svpbmp.cxx @@ -192,10 +192,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); } |