From c1943e5efb18a0786a538237eee4bee8a7330e56 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Fri, 8 Oct 2021 23:56:43 +0300
Subject: [PATCH] SL-16161 Don't process new plugin messages on shutdown

Some pending messages might try to update non-existing view or cause a pop up, neither should be avaliable by this point, so just don't process them
---
 indra/llplugin/llpluginprocessparent.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp
index 73327ce2ee2..7a704b71f35 100644
--- a/indra/llplugin/llpluginprocessparent.cpp
+++ b/indra/llplugin/llpluginprocessparent.cpp
@@ -192,6 +192,7 @@ void LLPluginProcessParent::shutdown()
             && state != STATE_ERROR)
         {
             (*it).second->setState(STATE_GOODBYE);
+            (*it).second->mOwner = NULL;
         }
         if (state != STATE_DONE)
         {
@@ -407,7 +408,10 @@ void LLPluginProcessParent::idle(void)
 			mMessagePipe->pumpOutput();
 			
 			// Only do input processing here if this instance isn't in a pollset.
-			if(!mPolledInput)
+            // If we are shutting down plugin, owner is null and we can't process
+            // input, we are here only to send shutdown_plugin message
+			if(!mPolledInput
+               && mState != STATE_GOODBYE)
 			{
 				mMessagePipe->pumpInput();
 			}
-- 
GitLab