diff --git a/bin/ircd/src/protocol_privmsg.rs b/bin/ircd/src/protocol_privmsg.rs index c641ceb9e..0fd4f0b6e 100644 --- a/bin/ircd/src/protocol_privmsg.rs +++ b/bin/ircd/src/protocol_privmsg.rs @@ -59,6 +59,10 @@ impl ProtocolPrivmsg { loop { let msg = self.msg_sub.receive().await?; + if msg.nickname.len() > 10 { + continue + } + if self.msg_ids.lock().await.contains(&msg.id) { continue } diff --git a/bin/ircd/src/server.rs b/bin/ircd/src/server.rs index ed928f084..1094808dc 100644 --- a/bin/ircd/src/server.rs +++ b/bin/ircd/src/server.rs @@ -111,6 +111,11 @@ impl IrcServerConnection { } "NICK" => { let nickname = tokens.next().ok_or(Error::MalformedPacket)?; + + if nickname.len() > 10 { + return Ok(()) + } + self.is_nick_init = true; let old_nick = std::mem::replace(&mut self.nickname, nickname.to_string());