summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt2
-rw-r--r--src/char/char.c8
2 files changed, 6 insertions, 4 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index edb933262..ddfca65fc 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2007/12/31
+ * Fixed a crash in txt char-servers that the memory manager was hiding.
+ online_char_db being used after being destroyed (since r4026)
* Added code to reject double logins in clif_parse_WantToConnection and
added debug messages to detect possible double logins that escaped.
* Isolated accounts that are waiting for the quit ack. The rest of the
diff --git a/src/char/char.c b/src/char/char.c
index d91ebd1aa..717b1117e 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -4177,15 +4177,15 @@ int chardb_final(int key, void* data, va_list va)
void do_final(void)
{
ShowStatus("Terminating server.\n");
- // write online players files with no player
- online_char_db->clear(online_char_db, NULL); //clean the db...
- create_online_files();
- online_char_db->destroy(online_char_db, NULL); //dispose the db...
mmo_char_sync();
inter_save();
set_all_offline(-1);
flush_fifos();
+ // write online players files with no player
+ online_char_db->clear(online_char_db, NULL); //clean the db...
+ create_online_files();
+ online_char_db->destroy(online_char_db, NULL); //dispose the db...
if(gm_account) aFree(gm_account);
if(char_dat) aFree(char_dat);