diff options
Diffstat (limited to 'rust/kernel/alloc/box_ext.rs')
| -rw-r--r-- | rust/kernel/alloc/box_ext.rs | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/rust/kernel/alloc/box_ext.rs b/rust/kernel/alloc/box_ext.rs index 829cb1c1cf9e..9f1c1c489189 100644 --- a/rust/kernel/alloc/box_ext.rs +++ b/rust/kernel/alloc/box_ext.rs @@ -21,8 +21,10 @@ pub trait BoxExt<T>: Sized {  impl<T> BoxExt<T> for Box<T> {      fn new(x: T, flags: Flags) -> Result<Self, AllocError> { -        let b = <Self as BoxExt<_>>::new_uninit(flags)?; -        Ok(Box::write(b, x)) +        let mut b = <Self as BoxExt<_>>::new_uninit(flags)?; +        b.write(x); +        // SAFETY: We just wrote to it. +        Ok(unsafe { b.assume_init() })      }      #[cfg(any(test, testlib))] | 
