Skip to content

Commit fa6c883

Browse files
committed
fix ptr invalidation in Vec::truncate
1 parent 86c1c43 commit fa6c883

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/liballoc/vec.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -739,7 +739,8 @@ impl<T> Vec<T> {
739739
if len > self.len {
740740
return;
741741
}
742-
let s = self.get_unchecked_mut(len..) as *mut _;
742+
let remaining_len = self.len - len;
743+
let s = slice::from_raw_parts_mut(self.as_mut_ptr().add(len), remaining_len);
743744
self.len = len;
744745
ptr::drop_in_place(s);
745746
}

0 commit comments

Comments
 (0)