diff options
author | shennetsind <ind@henn.et> | 2015-01-17 15:59:12 -0200 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2015-01-17 15:59:12 -0200 |
commit | 84b88781a0c39f7379ed85f74dc03c4e868a171f (patch) | |
tree | 41f0392d7d872fb038b42ddc82bde56be4582e47 /src/map/skill.c | |
parent | 36fa0940d5c97457f7093d81e7d298c88dac14af (diff) | |
download | hercules-84b88781a0c39f7379ed85f74dc03c4e868a171f.tar.gz hercules-84b88781a0c39f7379ed85f74dc03c4e868a171f.tar.bz2 hercules-84b88781a0c39f7379ed85f74dc03c4e868a171f.tar.xz hercules-84b88781a0c39f7379ed85f74dc03c4e868a171f.zip |
10 Distinct fixes
Addressing out of bounds read-write.
Special Thanks to 4144, Haruna!
Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 53be5541c..749f06799 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -11592,7 +11592,7 @@ int skill_unit_onplace(struct skill_unit *src, struct block_list *bl, int64 tick } else if( sc && battle->check_target(&sg->unit->bl,bl,sg->target_flag) > 0 ) { int sec = skill->get_time2(sg->skill_id,sg->skill_lv); if( status->change_start(ss, bl,type,10000,sg->skill_lv,1,sg->group_id,0,sec,SCFLAG_FIXEDRATE) ) { - const struct TimerData* td = sc->data[type]?timer->get(sc->data[type]->timer):NULL; + const struct TimerData* td = sce?timer->get(sce->timer):NULL; if( td ) sec = DIFF_TICK32(td->tick, tick); map->moveblock(bl, src->bl.x, src->bl.y, tick); @@ -18923,6 +18923,7 @@ bool skill_parse_row_changematerialdb(char* split[], int columns, int current) { if( current >= MAX_SKILL_PRODUCE_DB ) { ShowError("skill_changematerial_db: Maximum amount of entries reached (%d), increase MAX_SKILL_PRODUCE_DB\n",MAX_SKILL_PRODUCE_DB); + return false; } skill->changematerial_db[current].itemid = skill_id; |