From 1af30bc2feddeca178ee3fb11bf79e8746cc53e5 Mon Sep 17 00:00:00 2001 From: Christian Ebner Date: Thu, 22 Aug 2019 12:49:06 +0200 Subject: [PATCH] (pxar: replace deprecated std::mem::uninitialized() ... and use std::mem::MaybeUninit or proxmox::tools::vec::uninitialized() instead. Signed-off-by: Christian Ebner Signed-off-by: Wolfgang Bumiller --- src/pxar/encoder.rs | 5 +++-- src/pxar/sequential_decoder.rs | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/pxar/encoder.rs b/src/pxar/encoder.rs index 588f402e..e5fb0920 100644 --- a/src/pxar/encoder.rs +++ b/src/pxar/encoder.rs @@ -1141,9 +1141,10 @@ fn errno_is_unsupported(errno: Errno) -> bool { } fn detect_fs_type(fd: RawFd) -> Result { - let mut fs_stat: libc::statfs = unsafe { std::mem::uninitialized() }; - let res = unsafe { libc::fstatfs(fd, &mut fs_stat) }; + let mut fs_stat = std::mem::MaybeUninit::uninit(); + let res = unsafe { libc::fstatfs(fd, fs_stat.as_mut_ptr()) }; Errno::result(res)?; + let fs_stat = unsafe { fs_stat.assume_init() }; Ok(fs_stat.f_type) } diff --git a/src/pxar/sequential_decoder.rs b/src/pxar/sequential_decoder.rs index 507c600d..74c53d57 100644 --- a/src/pxar/sequential_decoder.rs +++ b/src/pxar/sequential_decoder.rs @@ -67,14 +67,15 @@ impl Result<(), Error>> SequentialDecoder { pub (crate) fn read_item(&mut self) -> Result { - let mut result: T = unsafe { std::mem::uninitialized() }; + let mut result = std::mem::MaybeUninit::::uninit(); let buffer = unsafe { std::slice::from_raw_parts_mut( - &mut result as *mut T as *mut u8, + result.as_mut_ptr() as *mut u8, std::mem::size_of::() )}; self.reader.read_exact(buffer)?; + let result = unsafe { result.assume_init() }; Ok(result.from_le()) } @@ -576,7 +577,6 @@ impl Result<(), Error>> SequentialDecoder { entry: &PxarEntry, filename: &OsStr ) -> Result<(), Error> { - let mut read_buffer: [u8; 64*1024] = unsafe { std::mem::uninitialized() }; let (head, attr) = self.read_attributes() .map_err(|err| format_err!("Reading of file attributes failed - {}", err))?; @@ -595,6 +595,7 @@ impl Result<(), Error>> SequentialDecoder { } let need = (head.size - HEADER_SIZE) as usize; + let mut read_buffer = unsafe { vec::uninitialized(64 * 1024) }; let mut done = 0; while done < need { let todo = need - done;