diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-08-29 16:58:11 +0100 |
---|---|---|
committer | Michael Stahl <michael.stahl@allotropia.de> | 2021-11-17 17:48:13 +0100 |
commit | 444174ef06a21e9257d65d5adad7d73df1bd5f07 (patch) | |
tree | 89df0ef576ed486e9ee7902e91754e736c870432 /include | |
parent | 81ffdb458e7169312c7b46da2d76cf40a6c51032 (diff) |
ofz#37796 limit to numeric_limits<int>::max
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121230
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
(cherry picked from commit 72da4c623baf60eb2b7073697cd36ffb3022847d)
Change-Id: I6e09226fad1e566ba2758d0084042b603b84d221
Diffstat (limited to 'include')
-rw-r--r-- | include/vcl/BitmapTools.hxx | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/vcl/BitmapTools.hxx b/include/vcl/BitmapTools.hxx index 3652bb849bf4..7c076a451a69 100644 --- a/include/vcl/BitmapTools.hxx +++ b/include/vcl/BitmapTools.hxx @@ -20,6 +20,7 @@ #include <basegfx/range/b2drectangle.hxx> #include <o3tl/safeint.hxx> #include <array> +#include <limits> class SvStream; namespace basegfx { class B2DHomMatrix; } @@ -51,6 +52,10 @@ public: mnBitCount(nBitCount) { assert(nBitCount == 24 || nBitCount == 32); + if (rSize.getWidth() > std::numeric_limits<sal_Int32>::max() || rSize.getWidth() < 0) + throw std::bad_alloc(); + if (rSize.getHeight() > std::numeric_limits<sal_Int32>::max() || rSize.getHeight() < 0) + throw std::bad_alloc(); sal_Int32 nRowSize, nDataSize; if (o3tl::checked_multiply<sal_Int32>(rSize.getWidth(), nBitCount/8, nRowSize) || o3tl::checked_multiply<sal_Int32>(nRowSize, rSize.getHeight(), nDataSize) || |