fune/third_party/rust/bytemuck/tests/wrapper_forgets.rs
2024-05-23 04:34:56 +00:00

13 lines
319 B
Rust

use bytemuck::TransparentWrapper;
#[repr(transparent)]
struct Wrap(Box<u32>);
// SAFETY: it's #[repr(transparent)]
unsafe impl TransparentWrapper<Box<u32>> for Wrap {}
fn main() {
let value = Box::new(5);
// This used to duplicate the wrapped value, creating a double free :(
Wrap::wrap(value);
}