From 4114e90bac00726a404353fd507024137a0fce49 Mon Sep 17 00:00:00 2001 From: Ben Kimock Date: Mon, 22 Mar 2021 18:39:24 -0400 Subject: [PATCH] Fix off-by-one mistake, explain the offset --- serde/src/ser/impls.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/serde/src/ser/impls.rs b/serde/src/ser/impls.rs index 1dd07397..0bbb58e9 100644 --- a/serde/src/ser/impls.rs +++ b/serde/src/ser/impls.rs @@ -725,7 +725,8 @@ impl Serialize for net::Ipv4Addr { let mut buf = [b'.'; MAX_LEN]; let mut written = format_u8(self.octets()[0], &mut buf); for oct in &self.octets()[1..] { - written += format_u8(*oct, &mut buf[written..]) + 1; + // Skip over delimiters that we initialized buf with + written += format_u8(*oct, &mut buf[written + 1..]) + 1; } // We've only written ASCII bytes to the buffer, so it is valid UTF-8 serializer.serialize_str(unsafe { str::from_utf8_unchecked(&buf[..written]) })