From 7514b8a5ffc127e94ceec10bffcb7d34f3bb74dd Mon Sep 17 00:00:00 2001 From: Haru Date: Tue, 2 Jun 2015 15:22:24 +0200 Subject: Fixed a crash when a Wink Charm user logs out during the skill effect - Fixes bugreport:8714, thanks to HermeMaton http://herc.ws/board/tracker/issue-8714-crash/ Signed-off-by: Haru --- src/map/status.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/map/status.c b/src/map/status.c index 34479fdec..299b732ff 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1656,10 +1656,15 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin return 0; if (sc->data[SC_DC_WINKCHARM] && target && !flag) { //Prevents skill usage - if( unit->bl2ud(src) && (unit->bl2ud(src))->walktimer == INVALID_TIMER ) - unit->walktobl(src, map->id2bl(sc->data[SC_DC_WINKCHARM]->val2), 3, 1); - clif->emotion(src, E_LV); - return 0; + struct block_list *winkcharm_target = map->id2bl(sc->data[SC_DC_WINKCHARM]->val2); + if (winkcharm_target != NULL) { + if (unit->bl2ud(src) && (unit->bl2ud(src))->walktimer == INVALID_TIMER) + unit->walktobl(src, map->id2bl(sc->data[SC_DC_WINKCHARM]->val2), 3, 1); + clif->emotion(src, E_LV); + return 0; + } else { + status_change_end(src, SC_DC_WINKCHARM, INVALID_TIMER); + } } if (sc->data[SC_BLADESTOP]) { -- cgit v1.2.3-70-g09d2