summaryrefslogtreecommitdiff
path: root/indra/llimage/llpngwrapper.cpp
diff options
context:
space:
mode:
authorAndreyL ProductEngine <alihatskiy@productengine.com>2018-09-27 13:09:04 +0300
committerAndreyL ProductEngine <alihatskiy@productengine.com>2018-09-27 13:09:04 +0300
commit4745de5f4b856146983cee5f50e78d051a9f6079 (patch)
tree2994a19d27eba1851f97ccf0cc0ab7e70a7b64a9 /indra/llimage/llpngwrapper.cpp
parentd53011a6420eab9b32d55604272db02b3c238389 (diff)
parent58aef8beaf79dc83546a7b080014ca5030733ac8 (diff)
Merged in lindenlab/viewer-release
Diffstat (limited to 'indra/llimage/llpngwrapper.cpp')
-rw-r--r--indra/llimage/llpngwrapper.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/indra/llimage/llpngwrapper.cpp b/indra/llimage/llpngwrapper.cpp
index eb70b78a36..f298764cc0 100644
--- a/indra/llimage/llpngwrapper.cpp
+++ b/indra/llimage/llpngwrapper.cpp
@@ -173,8 +173,11 @@ BOOL LLPngWrapper::readPng(U8* src, S32 dataSize, LLImageRaw* rawImage, ImageInf
// data space
if (rawImage != NULL)
{
- rawImage->resize(static_cast<U16>(mWidth),
- static_cast<U16>(mHeight), mChannels);
+ if (!rawImage->resize(static_cast<U16>(mWidth),
+ static_cast<U16>(mHeight), mChannels))
+ {
+ LLTHROW(PngError("Failed to resize image"));
+ }
U8 *dest = rawImage->getData();
int offset = mWidth * mChannels;
@@ -207,6 +210,12 @@ BOOL LLPngWrapper::readPng(U8* src, S32 dataSize, LLImageRaw* rawImage, ImageInf
releaseResources();
return (FALSE);
}
+ catch (std::bad_alloc)
+ {
+ mErrorMessage = "LLPngWrapper";
+ releaseResources();
+ return (FALSE);
+ }
// Clean up and return
releaseResources();