From d0b638226cbaaa98bd3db378d2228e383243ee12 Mon Sep 17 00:00:00 2001 From: ghassmo Date: Fri, 29 Apr 2022 00:24:11 +0300 Subject: [PATCH] ircd: error handling for cleaning received msg --- bin/ircd/src/main.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bin/ircd/src/main.rs b/bin/ircd/src/main.rs index 32eefbeaa..db2e4614d 100644 --- a/bin/ircd/src/main.rs +++ b/bin/ircd/src/main.rs @@ -51,7 +51,10 @@ fn clean_input(mut line: String, peer_addr: &SocketAddr) -> Result { return Err(Error::ChannelStopped) } - assert!(&line[(line.len() - 2)..] == "\r\n"); + if &line[(line.len() - 2)..] != "\r\n" { + warn!("Closing connection."); + return Err(Error::ChannelStopped) + } // Remove CRLF line.pop(); line.pop(); @@ -109,7 +112,10 @@ async fn process( return Ok(()) } info!("Receive msg from IRC server"); - let irc_msg = clean_input(line, &peer_addr)?; + let irc_msg = match clean_input(line, &peer_addr) { + Ok(m) => m, + Err(e) => return Err(e) + }; broadcast_msg(irc_msg, peer_addr,&mut conn).await?; } };