From e24d4c9f4d2f37ee80685c6ab276633b94b366b8 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Thu, 26 Jul 2018 20:06:26 +0300 Subject: MAINT-8923 Better allocation failure handling, createGLTexture crashes --- indra/llimage/llpngwrapper.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'indra/llimage/llpngwrapper.cpp') 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(mWidth), - static_cast(mHeight), mChannels); + if (!rawImage->resize(static_cast(mWidth), + static_cast(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(); -- cgit v1.2.3