From f4d713ad1259b3a96d296ab75b9bac176f209472 Mon Sep 17 00:00:00 2001
From: Andrew Productengine <adyukov@productengine.com>
Date: Mon, 1 Nov 2010 15:58:26 +0200
Subject: [PATCH] STORM-404 FIXED Fixed crash in
 LLPanelGroupGeneral::updateMembers().

Crash happened when trying to create new group while other group was still updating. It was caused by invalid iterator mMemberProgress in LLPanelGroupGeneral::updateMembers().
Its usage shouldn't have been reached when member list is cleared and empty thanking to gdatap->isMemberDataComplete() check at the beginning of the function. But when the new group was created while members of other group were still updating this
protection failed: in LLGroupMgr::processGroupMembersReply() for the group being created mMemberDataComplete was set TRUE when group size was zero(because this new group still
had no members). So the check for completness in LLPanelGroupGeneral::updateMembers() was succesfully passed, and further in this method viewer crashed.

- Added check for emptiness of member list into LLPanelGroupGeneral::updateMembers().
---
 indra/newview/llpanelgroupgeneral.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index 80df420a4e0..ec340dc258d 100644
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
@@ -692,7 +692,8 @@ void LLPanelGroupGeneral::updateMembers()
 	LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
 
 	if (!mListVisibleMembers || !gdatap 
-		|| !gdatap->isMemberDataComplete())
+		|| !gdatap->isMemberDataComplete()
+		|| gdatap->mMembers.empty())
 	{
 		return;
 	}
-- 
GitLab