From e13d2bafc6d0a4fb0d42cf9c229012f4a4f17131 Mon Sep 17 00:00:00 2001
From: est31 <MTest31@outlook.com>
Date: Fri, 22 May 2015 20:22:55 +0200
Subject: [PATCH] Deny empty username early in the protocol

Thanks to @UltimateNate for pointing this out :)
---
 src/network/serverpackethandler.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp
index f658e106f..4633aba86 100644
--- a/src/network/serverpackethandler.cpp
+++ b/src/network/serverpackethandler.cpp
@@ -164,9 +164,11 @@ void Server::handleCommand_Init(NetworkPacket* pkt)
 	*/
 	const char* playername = playerName.c_str();
 
-	if (playerName.size() > PLAYERNAME_SIZE) {
-		actionstream << "Server: Player with an too long name "
-				<< "tried to connect from " << addr_s << std::endl;
+	size_t pns = playerName.size();
+	if (pns == 0 || pns > PLAYERNAME_SIZE) {
+		actionstream << "Server: Player with "
+			<< ((pns > PLAYERNAME_SIZE) ? "a too long" : "an empty")
+			<< " name tried to connect from " << addr_s << std::endl;
 		DenyAccess(pkt->getPeerId(), SERVER_ACCESSDENIED_WRONG_NAME);
 		return;
 	}
-- 
GitLab