-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Description
The code below compiles without unsafe code but accesses memory out of the allocated range.
use stabby::slice::Slice;
fn main() {
let v = vec![12, 34, 56];
let mut s: Slice<'_, i32> = (&v[..]).into();
println!("{:?}", s);
println!("{:?} {:?}", s.start, s.len);
s.start = s.start.map_addr(|a| a.checked_add(4).unwrap());
println!("{:?}", s);
}I think Slices and SliceMuts cannot expose their fields directly. Instead, equivalents to core::slice::from_raw_parts* and similar functions should be considered.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels