From dc1d8031f1cd08ed0291be1918dcf6df3364c7f4 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Mon, 9 Aug 2021 23:37:35 +0300 Subject: SL-15788 Crash throw_std_bad_alloc in LLImageRaw's scale --- indra/llimage/llimage.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'indra/llimage/llimage.cpp') diff --git a/indra/llimage/llimage.cpp b/indra/llimage/llimage.cpp index aed8943439..983c7c2406 100644 --- a/indra/llimage/llimage.cpp +++ b/indra/llimage/llimage.cpp @@ -1456,7 +1456,7 @@ bool LLImageRaw::scale( S32 new_width, S32 new_height, bool scale_image_data ) setDataAndSize(new_data, new_width, new_height, components); } } - else + else try { // copy out existing image data S32 temp_data_size = old_width * old_height * components; @@ -1490,6 +1490,11 @@ bool LLImageRaw::scale( S32 new_width, S32 new_height, bool scale_image_data ) } } } + catch (std::bad_alloc&) // for temp_buffer + { + LL_WARNS() << "Failed to allocate temporary image buffer" << LL_ENDL; + return false; + } return true ; } -- cgit v1.2.3