From 282e27abf4fdf7582c2d052b9d8ca03a827a698f Mon Sep 17 00:00:00 2001 From: Julian Gindi Date: Thu, 11 Jul 2019 21:32:25 -0700 Subject: [PATCH 1/2] Removing use of mem::uninitialized from CloudABI and std::io::util --- src/libstd/io/util.rs | 3 +-- src/libstd/sys/cloudabi/mod.rs | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/libstd/io/util.rs b/src/libstd/io/util.rs index 2bfd3e4ad20e3..09b00cb17a2d2 100644 --- a/src/libstd/io/util.rs +++ b/src/libstd/io/util.rs @@ -44,8 +44,7 @@ pub fn copy(reader: &mut R, writer: &mut W) -> io::Result< where R: Read, W: Write { let mut buf = unsafe { - #[allow(deprecated)] - let mut buf: [u8; super::DEFAULT_BUF_SIZE] = mem::uninitialized(); + let mut buf: [u8; super::DEFAULT_BUF_SIZE] = mem::MaybeUninit::uninit().assume_init(); reader.initializer().initialize(&mut buf); buf }; diff --git a/src/libstd/sys/cloudabi/mod.rs b/src/libstd/sys/cloudabi/mod.rs index 3fef7552259c8..84794e010ed20 100644 --- a/src/libstd/sys/cloudabi/mod.rs +++ b/src/libstd/sys/cloudabi/mod.rs @@ -1,5 +1,3 @@ -#![allow(deprecated)] // mem::uninitialized - use crate::io::ErrorKind; use crate::mem; @@ -61,7 +59,7 @@ pub use libc::strlen; pub fn hashmap_random_keys() -> (u64, u64) { unsafe { - let mut v = mem::uninitialized(); + let mut v = mem::MaybeUninit::uninit().assume_init(); libc::arc4random_buf(&mut v as *mut _ as *mut libc::c_void, mem::size_of_val(&v)); v } From 30e143588e0d88b9c62bd11860e38afe8bef84dc Mon Sep 17 00:00:00 2001 From: Julian Gindi Date: Sat, 13 Jul 2019 13:32:59 -0700 Subject: [PATCH 2/2] backing out cloudabi changes, and removing uninit memory --- src/libstd/io/util.rs | 8 ++------ src/libstd/sys/cloudabi/mod.rs | 4 +++- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/libstd/io/util.rs b/src/libstd/io/util.rs index 09b00cb17a2d2..5bd57389bd478 100644 --- a/src/libstd/io/util.rs +++ b/src/libstd/io/util.rs @@ -2,7 +2,6 @@ use crate::fmt; use crate::io::{self, Read, Initializer, Write, ErrorKind, BufRead, IoSlice, IoSliceMut}; -use crate::mem; /// Copies the entire contents of a reader into a writer. /// @@ -43,11 +42,8 @@ use crate::mem; pub fn copy(reader: &mut R, writer: &mut W) -> io::Result where R: Read, W: Write { - let mut buf = unsafe { - let mut buf: [u8; super::DEFAULT_BUF_SIZE] = mem::MaybeUninit::uninit().assume_init(); - reader.initializer().initialize(&mut buf); - buf - }; + + let mut buf: [u8; super::DEFAULT_BUF_SIZE] = [0; super::DEFAULT_BUF_SIZE]; let mut written = 0; loop { diff --git a/src/libstd/sys/cloudabi/mod.rs b/src/libstd/sys/cloudabi/mod.rs index 84794e010ed20..3fef7552259c8 100644 --- a/src/libstd/sys/cloudabi/mod.rs +++ b/src/libstd/sys/cloudabi/mod.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] // mem::uninitialized + use crate::io::ErrorKind; use crate::mem; @@ -59,7 +61,7 @@ pub use libc::strlen; pub fn hashmap_random_keys() -> (u64, u64) { unsafe { - let mut v = mem::MaybeUninit::uninit().assume_init(); + let mut v = mem::uninitialized(); libc::arc4random_buf(&mut v as *mut _ as *mut libc::c_void, mem::size_of_val(&v)); v }