only if that block, or something in its "trusted set" (my term, for things in the same module that can access private members) is incorrect, though.
safety/unsafety in Rust is factorable, which is a key part of the reason Rust is useful at all.
safety/unsafety in Rust is factorable, which is a key part of the reason Rust is useful at all.
If you have a memory safety bug in that interface, then you can taint the rest of the program's memory safety as well, correct?
unsafe { libc::fork() };
let v = vec![1];
This may hang or even crash (malloc in the child) but there's no sense in which the unsafe block is "incorrect." Some unsafe code has unavoidable implications for the entire program.