From 5e58e1bb7db1c9d0242070250028530491d98252 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Thu, 22 Aug 2019 11:35:35 +0200 Subject: [PATCH] {dynamic,fixed}_index: replace mem::uninitialized Signed-off-by: Wolfgang Bumiller --- src/backup/dynamic_index.rs | 13 ++++++++++--- src/backup/fixed_index.rs | 12 +++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/backup/dynamic_index.rs b/src/backup/dynamic_index.rs index 2fa1c2c8..6103bdd1 100644 --- a/src/backup/dynamic_index.rs +++ b/src/backup/dynamic_index.rs @@ -141,10 +141,17 @@ impl DynamicIndexReader { }; let end = unsafe { *(self.index.add(pos*40) as *const u64) }; - let mut digest: [u8; 32] = unsafe { std::mem::uninitialized() }; - unsafe { std::ptr::copy_nonoverlapping(self.index.add(pos*40+8), digest.as_mut_ptr(), 32); } - Ok((start, end, digest)) + let mut digest = std::mem::MaybeUninit::<[u8; 32]>::uninit(); + unsafe { + std::ptr::copy_nonoverlapping( + self.index.add(pos*40+8), + (*digest.as_mut_ptr()).as_mut_ptr(), + 32, + ); + } + + Ok((start, end, unsafe { digest.assume_init() })) } #[inline] diff --git a/src/backup/fixed_index.rs b/src/backup/fixed_index.rs index ccea6485..526e72f1 100644 --- a/src/backup/fixed_index.rs +++ b/src/backup/fixed_index.rs @@ -153,10 +153,16 @@ impl FixedIndexReader { end = self.size; } - let mut digest: [u8; 32] = unsafe { std::mem::uninitialized() }; - unsafe { std::ptr::copy_nonoverlapping(self.index.add(pos*32), digest.as_mut_ptr(), 32); } + let mut digest = std::mem::MaybeUninit::<[u8; 32]>::uninit(); + unsafe { + std::ptr::copy_nonoverlapping( + self.index.add(pos*32), + (*digest.as_mut_ptr()).as_mut_ptr(), + 32, + ); + } - Ok((start, end, digest)) + Ok((start, end, unsafe { digest.assume_init() })) } #[inline]