From 5537417ac35ed36322acdba843bd72bf7a7d1992 Mon Sep 17 00:00:00 2001
From: Stinson Linden <stinson@lindenlab.com>
Date: Tue, 20 May 2014 01:03:50 +0100
Subject: [PATCH] MAINT-4009: Ensuring that the cookie store is properly
 cleaned on app exit.

---
 indra/llplugin/llplugincookiestore.cpp | 9 +++------
 indra/newview/llviewermedia.cpp        | 6 ++++++
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/indra/llplugin/llplugincookiestore.cpp b/indra/llplugin/llplugincookiestore.cpp
index f64b2642220..a5d717389d5 100755
--- a/indra/llplugin/llplugincookiestore.cpp
+++ b/indra/llplugin/llplugincookiestore.cpp
@@ -27,6 +27,7 @@
  */
 
 #include "linden_common.h"
+#include "llstl.h"
 #include "indra_constants.h"
 
 #include "llplugincookiestore.h"
@@ -654,12 +655,8 @@ void LLPluginCookieStore::setOneCookie(const std::string &s, std::string::size_t
 
 void LLPluginCookieStore::clearCookies()
 {
-	while(!mCookies.empty())
-	{
-		cookie_map_t::iterator iter = mCookies.begin();
-		delete iter->second;
-		mCookies.erase(iter);
-	}
+	std::for_each(mCookies.begin(), mCookies.end(), DeletePairedPointer());
+	mCookies.clear();
 }
 
 void LLPluginCookieStore::removeCookie(const std::string &key)
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index afa2bb67287..a2a3caee004 100755
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -1604,6 +1604,12 @@ void LLViewerMedia::cleanupClass()
 		delete sSpareBrowserMediaSource;
 		sSpareBrowserMediaSource = NULL;
 	}
+
+	if (sCookieStore != NULL)
+	{
+		delete sCookieStore;
+		sCookieStore = NULL;
+	}
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////
-- 
GitLab