diff --git a/misc/multiaddr/src/lib.rs b/misc/multiaddr/src/lib.rs index 60c2ff8d..41a77a32 100644 --- a/misc/multiaddr/src/lib.rs +++ b/misc/multiaddr/src/lib.rs @@ -346,7 +346,7 @@ impl<'de> Deserialize<'de> for Multiaddr { formatter.write_str("multiaddress") } fn visit_seq>(self, mut seq: A) -> StdResult { - let mut buf: Vec = Vec::with_capacity(seq.size_hint().unwrap_or(0)); + let mut buf: Vec = Vec::with_capacity(std::cmp::min(seq.size_hint().unwrap_or(0), 4096)); while let Some(e) = seq.next_element()? { buf.push(e); } if self.is_human_readable { let s = String::from_utf8(buf).map_err(DeserializerError::custom)?;