From c3176a814306db20a6f0ff7cdf1baad6bf9c877c Mon Sep 17 00:00:00 2001 From: ariel- Date: Sat, 6 May 2017 15:49:56 -0300 Subject: Core/Players: fix null dereference crash --- src/server/game/Entities/Player/Player.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index dadfa60fad9..f98e45327f7 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -23807,15 +23807,19 @@ void Player::ResurrectUsingRequestData() void Player::ResurrectUsingRequestDataImpl() { + // save health and mana before resurrecting, _resurrectionData can be erased + uint32 resurrectHealth = _resurrectionData->Health; + uint32 resurrectMana = _resurrectionData->Mana; + ResurrectPlayer(0.0f, false); - if (GetMaxHealth() > _resurrectionData->Health) - SetHealth(_resurrectionData->Health); + if (GetMaxHealth() > resurrectHealth) + SetHealth(resurrectHealth); else SetFullHealth(); - if (GetMaxPower(POWER_MANA) > _resurrectionData->Mana) - SetPower(POWER_MANA, _resurrectionData->Mana); + if (GetMaxPower(POWER_MANA) > resurrectMana) + SetPower(POWER_MANA, resurrectMana); else SetPower(POWER_MANA, GetMaxPower(POWER_MANA)); -- cgit v1.2.3