Be less restrictive regarding packet sizes

pull/5/head
Frank Denis 5 years ago
parent 7c76ee9a13
commit 89704db220

@ -263,7 +263,7 @@ async fn tcp_acceptor(globals: Arc<Globals>, tcp_listener: TcpListener) -> Resul
client_connection.read_exact(&mut binlen).await?; client_connection.read_exact(&mut binlen).await?;
let packet_len = BigEndian::read_u16(&binlen) as usize; let packet_len = BigEndian::read_u16(&binlen) as usize;
ensure!( ensure!(
(DNSCRYPT_TCP_QUERY_MIN_SIZE..=DNSCRYPT_TCP_QUERY_MAX_SIZE).contains(&packet_len), (DNS_HEADER_SIZE..=DNSCRYPT_TCP_QUERY_MAX_SIZE).contains(&packet_len),
"Unexpected query size" "Unexpected query size"
); );
let mut packet = vec![0u8; packet_len]; let mut packet = vec![0u8; packet_len];
@ -293,7 +293,7 @@ async fn udp_acceptor(
loop { loop {
let mut packet = vec![0u8; DNSCRYPT_UDP_QUERY_MAX_SIZE]; let mut packet = vec![0u8; DNSCRYPT_UDP_QUERY_MAX_SIZE];
let (packet_len, client_addr) = tokio_udp_socket.recv_from(&mut packet).await?; let (packet_len, client_addr) = tokio_udp_socket.recv_from(&mut packet).await?;
if packet_len < DNSCRYPT_UDP_QUERY_MIN_SIZE { if packet_len < DNS_HEADER_SIZE {
continue; continue;
} }
let net_udp_socket = net_udp_socket.try_clone()?; let net_udp_socket = net_udp_socket.try_clone()?;

Loading…
Cancel
Save