From 740f7131f70e75c76c41d0449eda16188655ee3e Mon Sep 17 00:00:00 2001 From: cookiecrumbs Date: Sun, 22 Jul 2012 22:36:13 +0000 Subject: Added a check on the battle_delay_damage_sub to prevent crashes from map_freeblock_lock/unlock issues and the pointer becoming dereferenced. Original fix suggested by WildCard and it has proven to resolve issues on a larger scale server. bugreport:6123 git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16476 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/battle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/map/battle.c b/src/map/battle.c index e0659ce81..a9c8ba6ea 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -200,7 +200,7 @@ int battle_delay_damage_sub(int tid, unsigned int tick, int id, intptr_t data) { struct delay_damage *dat = (struct delay_damage *)data; - if ( dat && dat->target && dat->target->prev != NULL && !status_isdead(dat->target) ) { + if ( dat && dat->target && map_id2bl(id) == dat->src && dat->target->prev != NULL && !status_isdead(dat->target) ) { if( dat->src && dat->src->prev != NULL && id == dat->src->id && dat->target->m == dat->src->m && (dat->target->type != BL_PC || ((TBL_PC*)dat->target)->invincible_timer == INVALID_TIMER) && -- cgit v1.2.3-60-g2f50