summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/network/network_server.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp
index d465078a7..7e870d1c3 100644
--- a/src/network/network_server.cpp
+++ b/src/network/network_server.cpp
@@ -178,14 +178,18 @@ ServerNetworkGameSocketHandler::~ServerNetworkGameSocketHandler()
OrderBackup::ResetUser(this->client_id);
if (this->savegame_mutex != NULL) this->savegame_mutex->BeginCritical();
- delete this->savegame_packets;
if (this->savegame != NULL) this->savegame->cs = NULL;
-
if (this->savegame_mutex != NULL) this->savegame_mutex->EndCritical();
/* Make sure the saving is completely cancelled. */
if (this->savegame != NULL) WaitTillSaved();
+ while (this->savegame_packets != NULL) {
+ Packet *p = this->savegame_packets->next;
+ delete this->savegame_packets;
+ this->savegame_packets = p;
+ }
+
delete this->savegame_mutex;
}