summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-SVN.txt2
-rw-r--r--src/common/core.c2
-rw-r--r--src/map/map.c17
3 files changed, 12 insertions, 9 deletions
diff --git a/Changelog-SVN.txt b/Changelog-SVN.txt
index f1241f134..3d7c75aba 100644
--- a/Changelog-SVN.txt
+++ b/Changelog-SVN.txt
@@ -1,6 +1,8 @@
Date Added
03/17
+ * Fixed heap corrupion in map.c caused while loading maps
+ [SVN 1241: MouseJstr]
* Re-fixed compile error in map.c -- sorry ^^; [celest]
* trade.c fixed possibility of STORAGE+TRADE spooffing dupe [Lupus]
Now, on accepting trade your active Storage window closes. (Either Common or Guils Storage)
diff --git a/src/common/core.c b/src/common/core.c
index 37a46825b..0b3d65fed 100644
--- a/src/common/core.c
+++ b/src/common/core.c
@@ -289,7 +289,9 @@ int main(int argc,char **argv)
display_title();
+#ifndef BCHECK
do_init_memmgr(argv[0]); // 一番最初に実行する必要がある
+#endif
tick_ = time(0);
ticks = gettick();
diff --git a/src/map/map.c b/src/map/map.c
index 066427111..1ee3840c7 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -1729,15 +1729,14 @@ int map_mapname2mapid(char *name) {
md = (struct map_data*)strdb_search(map_db,name);
- #ifdef USE_AFM
- // If we can't find the .gat map try .afm instead [celest]
- if(md==NULL && strstr(name,".gat")) {
- char afm_name[16] = "";
- strncpy(afm_name, name, strlen(name) - 4);
- strcat(afm_name, ".afm");
- md = (struct map_data*)strdb_search(map_db,afm_name);
- }
- #endif
+#ifdef USE_AFM
+ // If we can't find the .gat map try .afm instead [celest]
+ if(md==NULL && strstr(name,".gat")) {
+ char *afm_name = strdup(name);
+ strcpy(&afm_name[strlen(name) - 3], "afm");
+ md = (struct map_data*)strdb_search(map_db,afm_name);
+ }
+#endif
if(md==NULL || md->gat==NULL)
return -1;