From fa6c8830740829d38f4ac7bfc8d8131ae44b9ade Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Mon, 30 Mar 2020 10:40:59 +0200 Subject: [PATCH] fix ptr invalidation in Vec::truncate --- src/liballoc/vec.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/liballoc/vec.rs b/src/liballoc/vec.rs index 6f264399fa8..1c8c4428169 100644 --- a/src/liballoc/vec.rs +++ b/src/liballoc/vec.rs @@ -739,7 +739,8 @@ impl Vec { if len > self.len { return; } - let s = self.get_unchecked_mut(len..) as *mut _; + let remaining_len = self.len - len; + let s = slice::from_raw_parts_mut(self.as_mut_ptr().add(len), remaining_len); self.len = len; ptr::drop_in_place(s); }