From a642964e55991cbaeef47e43a157631c7a9167ba Mon Sep 17 00:00:00 2001 From: Novampr Date: Tue, 21 Apr 2026 21:22:00 +0100 Subject: [PATCH 1/2] Handle pre-login packet errors --- .../geyser/network/InvalidPacketHandler.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/network/InvalidPacketHandler.java b/core/src/main/java/org/geysermc/geyser/network/InvalidPacketHandler.java index 6f34b6d4345..789d76f6cf2 100644 --- a/core/src/main/java/org/geysermc/geyser/network/InvalidPacketHandler.java +++ b/core/src/main/java/org/geysermc/geyser/network/InvalidPacketHandler.java @@ -51,14 +51,22 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws E if (!(rootCause instanceof IllegalArgumentException)) { // Kick users that cause exceptions - logger.error("Exception caught in session of " + session.bedrockUsername(), cause); + if (session.authData() == null) { + logger.error("Exception caught in unknown session (pre-login)", cause); + } else { + logger.error("Exception caught in session of " + session.bedrockUsername(), cause); + } session.disconnect("An internal error occurred!"); session.forciblyCloseUpstream(); return; } // Kick users that try to send illegal packets - logger.error("Illegal packet from " + session.bedrockUsername(), cause); + if (session.authData() == null) { + logger.error("Illegal packet from unknown session (pre-login)", cause); + } else { + logger.error("Illegal packet from " + session.bedrockUsername(), cause); + } session.disconnect("Invalid packet received!"); session.forciblyCloseUpstream(); } From 95a06cde0696a60c76b77304e7c81149cc2d5be6 Mon Sep 17 00:00:00 2001 From: Novampr Date: Tue, 21 Apr 2026 21:28:47 +0100 Subject: [PATCH 2/2] Make handling simpler --- .../geyser/network/InvalidPacketHandler.java | 12 ++---------- .../org/geysermc/geyser/session/GeyserSession.java | 2 +- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/network/InvalidPacketHandler.java b/core/src/main/java/org/geysermc/geyser/network/InvalidPacketHandler.java index 789d76f6cf2..6f34b6d4345 100644 --- a/core/src/main/java/org/geysermc/geyser/network/InvalidPacketHandler.java +++ b/core/src/main/java/org/geysermc/geyser/network/InvalidPacketHandler.java @@ -51,22 +51,14 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws E if (!(rootCause instanceof IllegalArgumentException)) { // Kick users that cause exceptions - if (session.authData() == null) { - logger.error("Exception caught in unknown session (pre-login)", cause); - } else { - logger.error("Exception caught in session of " + session.bedrockUsername(), cause); - } + logger.error("Exception caught in session of " + session.bedrockUsername(), cause); session.disconnect("An internal error occurred!"); session.forciblyCloseUpstream(); return; } // Kick users that try to send illegal packets - if (session.authData() == null) { - logger.error("Illegal packet from unknown session (pre-login)", cause); - } else { - logger.error("Illegal packet from " + session.bedrockUsername(), cause); - } + logger.error("Illegal packet from " + session.bedrockUsername(), cause); session.disconnect("Invalid packet received!"); session.forciblyCloseUpstream(); } diff --git a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java index 855cd13cb7a..eb095907a1a 100644 --- a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java +++ b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java @@ -2355,7 +2355,7 @@ public boolean isThunder() { @Override public @NonNull String bedrockUsername() { - return authData.name(); + return authData != null ? authData.name() : "unknown (pre-login)"; } @Override