From 281c3d8beec393de9afced57c6756d0d367a1c77 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Thu, 5 Nov 2020 21:40:54 +0200
Subject: [PATCH] SL-14270 Crash accessing deleted 'parent' via callback from
 child

---
 indra/llui/llfolderviewmodel.cpp | 5 +++++
 indra/llui/llfolderviewmodel.h   | 4 ++++
 2 files changed, 9 insertions(+)

diff --git a/indra/llui/llfolderviewmodel.cpp b/indra/llui/llfolderviewmodel.cpp
index 3b45fb53a21..58a1ef646a3 100644
--- a/indra/llui/llfolderviewmodel.cpp
+++ b/indra/llui/llfolderviewmodel.cpp
@@ -29,6 +29,11 @@
 #include "llfolderviewmodel.h"
 #include "lltrans.h"
 
+LLFolderViewModelItemCommon::~LLFolderViewModelItemCommon()
+{
+    clearChildren();
+}
+
 bool LLFolderViewModelCommon::needsSort(LLFolderViewModelItem* item)
 {
 	return item->getSortVersion() < mTargetSortVersion;
diff --git a/indra/llui/llfolderviewmodel.h b/indra/llui/llfolderviewmodel.h
index f71a88c56e8..903049b9af1 100644
--- a/indra/llui/llfolderviewmodel.h
+++ b/indra/llui/llfolderviewmodel.h
@@ -248,6 +248,8 @@ class LLFolderViewModelItemCommon : public LLFolderViewModelItem
 		mChildren.clear();
 	}
 
+    virtual ~LLFolderViewModelItemCommon();
+
 	void requestSort() { mSortVersion = -1; }
 	S32 getSortVersion() { return mSortVersion; }
 	void setSortVersion(S32 version) { mSortVersion = version;}
@@ -399,6 +401,8 @@ class LLFolderViewModelCommon : public LLFolderViewModelInterface
 		mFolderView(NULL)
 	{}
 
+    virtual ~LLFolderViewModelCommon() {}
+
 	virtual void requestSortAll()
 	{
 		// sort everything
-- 
GitLab