From d24c751eef15e417126225f39e634e38289f62a2 Mon Sep 17 00:00:00 2001 From: Kyle Sanderson Date: Sun, 17 Mar 2013 09:49:31 -0400 Subject: [PATCH] Fixed crash regression in cset 90159516acd3 when player auth is invalid (bug 5538, r=asherkin). --- extensions/clientprefs/cookie.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/extensions/clientprefs/cookie.cpp b/extensions/clientprefs/cookie.cpp index 55a1b97a..b9f7abbb 100644 --- a/extensions/clientprefs/cookie.cpp +++ b/extensions/clientprefs/cookie.cpp @@ -198,7 +198,7 @@ void CookieManager::OnClientDisconnecting(int client) statsLoaded[client] = false; statsPending[client] = false; - CookieData *current; + CookieData *current = NULL; g_ClientPrefs.AttemptReconnection(); @@ -210,25 +210,16 @@ void CookieManager::OnClientDisconnecting(int client) if (player) { pAuth = player->GetAuthString(); + g_ClientPrefs.ClearQueryCache(player->GetSerial()); } - - g_ClientPrefs.ClearQueryCache(player->GetSerial()); - + for (SourceHook::List::iterator _iter = clientData[client].begin();\ _iter != clientData[client].end(); _iter++) { - if (player == NULL || pAuth == NULL) - { - /* panic! */ - current->parent->data[client] = NULL; - delete current; - continue; - } - current = (CookieData *)*_iter; dbId = current->parent->dbid; - if (!current->changed || dbId == -1) + if (player == NULL || pAuth == NULL || !current->changed || dbId == -1) { current->parent->data[client] = NULL; delete current;