oden/third-party/vendor/bytemuck/tests/wrapper_forgets.rs
2024-03-08 11:03:01 -08: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);
}