From f2780a93c082e9c9a9557b7b0f6378980632b634 Mon Sep 17 00:00:00 2001
From: AndreyL ProductEngine <alihatskiy@productengine.com>
Date: Wed, 7 Jun 2017 03:16:56 +0300
Subject: [PATCH] MAINT-6697 Added a nullcheck to unzip_llsd()

---
 indra/llcommon/llsdserialize.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/indra/llcommon/llsdserialize.cpp b/indra/llcommon/llsdserialize.cpp
index 81ba8631c64..41cdb14886e 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;
 
-- 
GitLab