From b8aed9dfc2ae5e1c877707c856b061ee76b0e1c4 Mon Sep 17 00:00:00 2001 From: gregorycu Date: Sun, 8 May 2016 19:02:11 +1000 Subject: [PATCH] Fixes #4098 ce8a9ed didn't quite go far enough, and left this bug in --- src/server.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 0aba2796c..a3b686c25 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1846,7 +1846,7 @@ void Server::SendPlayerHP(u16 peer_id) { DSTACK(FUNCTION_NAME); PlayerSAO *playersao = getPlayerSAO(peer_id); - // In some rare case, if the player is disconnected + // In some rare case if the player is disconnected // while Lua call l_punch, for example, this can be NULL if (!playersao) return; @@ -2515,9 +2515,11 @@ void Server::sendDetachedInventories(u16 peer_id) void Server::DiePlayer(u16 peer_id) { DSTACK(FUNCTION_NAME); - PlayerSAO *playersao = getPlayerSAO(peer_id); - assert(playersao); + // In some rare cases this can be NULL -- if the player is disconnected + // when a Lua function modifies l_punch, for example + if (!playersao) + return; infostream << "Server::DiePlayer(): Player " << playersao->getPlayer()->getName()