From 6540f260b578edc283552f6e4ae9baffdfd7b789 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 8 Mar 2023 16:22:24 +0000 Subject: [PATCH] arti-client: Reject .onion, when we should, without allocating Use new strip_suffix_ignore_ascii_case --- crates/arti-client/src/address.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/arti-client/src/address.rs b/crates/arti-client/src/address.rs index 33712d299..ac0d464a0 100644 --- a/crates/arti-client/src/address.rs +++ b/crates/arti-client/src/address.rs @@ -5,6 +5,7 @@ use crate::err::ErrorDetail; use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6}; use std::str::FromStr; use thiserror::Error; +use tor_basic_utils::StrExt; // ---------------------------------------------------------------------- @@ -178,7 +179,7 @@ impl TorAddr { if !is_valid_hostname(addr) { return Err(ErrorDetail::InvalidHostname); } - if addr.to_lowercase().ends_with(".onion") { + if addr.strip_suffix_ignore_ascii_case(".onion").is_some() { // TODO hs: Allow this in some cases instead. return Err(ErrorDetail::OnionAddressNotSupported); }