summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAndreyL ProductEngine <alihatskiy@productengine.com>2017-06-07 03:16:56 +0300
committerAndreyL ProductEngine <alihatskiy@productengine.com>2017-06-07 03:16:56 +0300
commitf2780a93c082e9c9a9557b7b0f6378980632b634 (patch)
tree1b494c70766b8568dec16ab9c958cd5c2b9252db /indra
parent54d3e2634d66f3d32eef91ee81688276aeebd8ad (diff)
MAINT-6697 Added a nullcheck to unzip_llsd()
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/llsdserialize.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/indra/llcommon/llsdserialize.cpp b/indra/llcommon/llsdserialize.cpp
index 81ba8631c6..41cdb14886 100644
--- a/indra/llcommon/llsdserialize.cpp
+++ b/indra/llcommon/llsdserialize.cpp
@@ -2175,6 +2175,14 @@ bool unzip_llsd(LLSD& data, std::istream& is, S32 size)
U32 have = CHUNK-strm.avail_out;
result = (U8*) realloc(result, cur_size + have);
+ if (result == NULL)
+ {
+ LL_WARNS() << "Failed to unzip LLSD block: can't reallocate memory, current size: " << cur_size << " bytes; requested " << cur_size + have << " bytes." << LL_ENDL;
+ inflateEnd(&strm);
+ free(result);
+ delete[] in;
+ return false;
+ }
memcpy(result+cur_size, out, have);
cur_size += have;