]> git.proxmox.com Git - proxmox-backup.git/commitdiff
src/backup/index: replace mem::uninitialized
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Thu, 22 Aug 2019 09:24:15 +0000 (11:24 +0200)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Thu, 22 Aug 2019 09:27:35 +0000 (11:27 +0200)
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
src/backup/index.rs

index 1c40b7dc6eded6d074c7d3d903d53cda7baa7e01..713f6b2d7a9861d70088c029ea0aea705177d09f 100644 (file)
@@ -1,7 +1,8 @@
+use std::collections::HashMap;
+
+use bytes::{Bytes, BytesMut};
 use failure::*;
 use futures::*;
-use bytes::{Bytes, BytesMut};
-use std::collections::HashMap;
 
 /// Trait to get digest list from index files
 ///
@@ -112,10 +113,11 @@ impl <S> Stream for DigestListDecoder<S>
 
                 let left = self.buffer.split_to(32);
 
-                let mut digest: [u8; 32] = unsafe { std::mem::uninitialized() };
-                unsafe { std::ptr::copy_nonoverlapping(left.as_ptr(), digest.as_mut_ptr(), 32); }
-
-                return Ok(Async::Ready(Some(digest)));
+                let mut digest = std::mem::MaybeUninit::<[u8; 32]>::uninit();
+                unsafe {
+                    (*digest.as_mut_ptr()).copy_from_slice(&left[..]);
+                    return Ok(Async::Ready(Some(digest.assume_init())));
+                }
             }
 
             match self.input.poll() {