From 5bab190d3325601979ddf425cb590e075cec6c03 Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Mon, 21 Apr 2025 22:37:53 -0400 Subject: [PATCH] fix #2244 (#2247) Fix #2244 Produce an explicit error on receiving the UTF-8 BOM --- irc/client.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/irc/client.go b/irc/client.go index 9598bf28..14efecd8 100644 --- a/irc/client.go +++ b/irc/client.go @@ -71,6 +71,10 @@ const ( PingCoalesceThreshold = time.Second ) +const ( + utf8BOM = "\xef\xbb\xbf" +) + var ( MaxLineLen = DefaultMaxLineLen ) @@ -750,7 +754,11 @@ func (client *Client) run(session *Session) { continue } // else: proceed with the truncated line } else if err != nil { - client.Quit(client.t("Received malformed line"), session) + message := "Received malformed line" + if strings.HasPrefix(line, utf8BOM) { + message = "Received UTF-8 byte-order mark, which is invalid at the start of an IRC protocol message" + } + client.Quit(message, session) break }