From ce8a9ed94b7a3a4cbce04bee27bf8d4167ac6161 Mon Sep 17 00:00:00 2001 From: Ner'zhul Date: Sat, 11 Apr 2015 10:07:23 +0200 Subject: [PATCH] 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. --- src/server.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server.cpp b/src/server.cpp index 6597ee64f..4d5938205 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1802,7 +1802,11 @@ void Server::SendPlayerHP(u16 peer_id) { DSTACK(__FUNCTION_NAME); 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()); m_script->player_event(playersao,"health_changed");