From fa963b6b15187739b808f16d42086e64aeebbacc Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Mon, 20 Jan 2025 21:42:33 +0200
Subject: #3438 Crash when ParcelProperties' Bitmap is of wrong size

---
 indra/newview/llviewerparcelmgr.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp
index 8c24b2438b..8e6657b4b9 100644
--- a/indra/newview/llviewerparcelmgr.cpp
+++ b/indra/newview/llviewerparcelmgr.cpp
@@ -1824,6 +1824,16 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use
                 S32 bitmap_size =   parcel_mgr.mParcelsPerEdge
                                     * parcel_mgr.mParcelsPerEdge
                                     / 8;
+                S32 size = msg->getSizeFast(_PREHASH_ParcelData, _PREHASH_Bitmap);
+                if (size != bitmap_size)
+                {
+                    // Might be better to ignore bitmap and drop highlights
+                    LL_WARNS("ParcelMgr") << "Parcel Bitmap size expected: " << bitmap_size
+                        << " actual " << size
+                        << ". Bitmap might be corrupted!" << LL_ENDL;
+                    bitmap_size = size;
+                }
+
                 U8* bitmap = new U8[ bitmap_size ];
                 msg->getBinaryDataFast(_PREHASH_ParcelData, _PREHASH_Bitmap, bitmap, bitmap_size);
 
-- 
cgit v1.2.3