diff options
author | Haru <haru@dotalux.com> | 2013-12-09 18:31:47 +0100 |
---|---|---|
committer | Haru <haru@dotalux.com> | 2013-12-09 18:45:34 +0100 |
commit | c3c5e31443c218fb7fbf42b2c48d158b01f37131 (patch) | |
tree | 6e808a112286ef02e4ab7c9843b3f02ab42204d4 | |
parent | 3e90bda07068e8662a7fcaf8b1a4e82bbdf0fd4d (diff) | |
download | hercules-c3c5e31443c218fb7fbf42b2c48d158b01f37131.tar.gz hercules-c3c5e31443c218fb7fbf42b2c48d158b01f37131.tar.bz2 hercules-c3c5e31443c218fb7fbf42b2c48d158b01f37131.tar.xz hercules-c3c5e31443c218fb7fbf42b2c48d158b01f37131.zip |
Fixed a crash when casting GN_SPORE_EXPLOSION on certain systems.
- Follow-up to 44c33fda3614d588e6bf6cee1cf884e98f1531f0.
- Also fixed some incorrect va_end calls that came up while debugging.
- Special thanks to Ind for his help debugging the problem.
Signed-off-by: Haru <haru@dotalux.com>
-rw-r--r-- | src/map/clif.c | 1 | ||||
-rw-r--r-- | src/map/map.c | 2 | ||||
-rw-r--r-- | src/map/skill.c | 2 |
3 files changed, 3 insertions, 2 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 4e10e2eea..675cfba9b 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -18250,6 +18250,7 @@ static void __attribute__ ((unused)) packetdb_addpacket(short cmd, int len, ...) packet_db[cmd].pos[i] = pos; } + va_end(va); } void packetdb_loaddb(void) { diff --git a/src/map/map.c b/src/map/map.c index 874dca08c..5db2d8480 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -695,7 +695,7 @@ int map_vforeachinrange(int (*func)(struct block_list*, va_list), struct block_l va_copy(apcopy, ap); returnCount = bl_vforeach(func, blockcount, INT_MAX, apcopy); - va_end(ap); + va_end(apcopy); return returnCount; } diff --git a/src/map/skill.c b/src/map/skill.c index 1f9a8c15b..541e1b389 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3198,7 +3198,7 @@ int skill_timerskill(int tid, int64 tick, int id, intptr_t data) { break; case GN_SPORE_EXPLOSION: map->foreachinrange(skill->area_sub, target, skill->get_splash(skl->skill_id, skl->skill_lv), BL_CHAR, - src, skl->skill_id, skl->skill_lv, 0, skl->flag|1|BCT_ENEMY, skill->castend_damage_id); + src, skl->skill_id, skl->skill_lv, (int64)0, skl->flag|1|BCT_ENEMY, skill->castend_damage_id); break; case SR_FLASHCOMBO_ATK_STEP1: case SR_FLASHCOMBO_ATK_STEP2: |