Fix a rare crash case un SendPlayerHP

If the player is disconnected while Lua API is doing a l_punch call, for example, the playersao is NULL and the server crash. Fix it.
This commit is contained in:
Ner'zhul 2015-04-11 10:07:23 +02:00
parent 0a413265cb
commit ce8a9ed94b

@ -1802,7 +1802,11 @@ void Server::SendPlayerHP(u16 peer_id)
{ {
DSTACK(__FUNCTION_NAME); DSTACK(__FUNCTION_NAME);
PlayerSAO *playersao = getPlayerSAO(peer_id); PlayerSAO *playersao = getPlayerSAO(peer_id);
assert(playersao); // In some rare case, if the player is disconnected
// while Lua call l_punch, for example, this can be NULL
if (!playersao)
return;
SendHP(peer_id, playersao->getHP()); SendHP(peer_id, playersao->getHP());
m_script->player_event(playersao,"health_changed"); m_script->player_event(playersao,"health_changed");