summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog.txt2
-rw-r--r--src/map/map.c8
2 files changed, 9 insertions, 1 deletions
diff --git a/Changelog.txt b/Changelog.txt
index 75bbc75d7..8b4eebfe9 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -1,6 +1,8 @@
Date Added
01/26
+ * Added bug fix for a memory leak caused when a character logs out,
+ by End_of_exam / jA 1108 [celest]
* Fixed a bug in gettick cache when compiling in Windows, thanks to Shinomori
(jA 1094) [celest]
* Added updates from jA 1092 [celest]
diff --git a/src/map/map.c b/src/map/map.c
index 8dd538015..e942ead50 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -1085,7 +1085,13 @@ int map_quit(struct map_session_data *sd) {
chrif_char_offline(sd);
#endif
- numdb_erase(id_db,sd->bl.id);
+ {
+ void *p = numdb_search(charid_db,sd->status.char_id);
+ if(p) {
+ numdb_erase(charid_db,sd->status.char_id);
+ free(p);
+ }
+ }
strdb_erase(nick_db,sd->status.name);
numdb_erase(charid_db,sd->status.char_id);