aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNer'zhul <nerzhul@users.noreply.github.com>2015-04-11 10:07:23 +0200
committerNer'zhul <nerzhul@users.noreply.github.com>2015-04-11 10:07:23 +0200
commitce8a9ed94b7a3a4cbce04bee27bf8d4167ac6161 (patch)
treedfe8dcf7c310787e949fddc14a6da2fa167e1ad8
parent0a413265cb7057b5303733dd32cf802a9ecf6105 (diff)
downloadminetest-ce8a9ed94b7a3a4cbce04bee27bf8d4167ac6161.tar.gz
minetest-ce8a9ed94b7a3a4cbce04bee27bf8d4167ac6161.tar.bz2
minetest-ce8a9ed94b7a3a4cbce04bee27bf8d4167ac6161.zip
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.
-rw-r--r--src/server.cpp6
1 files changed, 5 insertions, 1 deletions
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");