diff options
author | Daniel Verkamp <dverkamp@chromium.org> | 2019-07-08 13:12:05 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-07-09 17:07:51 +0000 |
commit | bb5a4f1843361518412d5cd4036e31fb65f36e33 (patch) | |
tree | 5e5327b1ce21bda52d97730fd118cdd7d11004d2 | |
parent | da52468b34ceacf8a3d74d191f09cf9d8099a0a6 (diff) | |
download | crosvm-bb5a4f1843361518412d5cd4036e31fb65f36e33.tar crosvm-bb5a4f1843361518412d5cd4036e31fb65f36e33.tar.gz crosvm-bb5a4f1843361518412d5cd4036e31fb65f36e33.tar.bz2 crosvm-bb5a4f1843361518412d5cd4036e31fb65f36e33.tar.lz crosvm-bb5a4f1843361518412d5cd4036e31fb65f36e33.tar.xz crosvm-bb5a4f1843361518412d5cd4036e31fb65f36e33.tar.zst crosvm-bb5a4f1843361518412d5cd4036e31fb65f36e33.zip |
devices: remove use of mem::uninitialized
mem::uninitialized is unsafe, and we already replaced most instances of it with alternate implementations; however, another one slipped in since then. Replace it with Default::default() as a safe alterantive. BUG=None TEST=./build_test Change-Id: Idacdcb0ebe197cc93fba4b15c3dda774bb56e73e Signed-off-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1691233 Reviewed-by: Zach Reizner <zachr@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com>
-rw-r--r-- | devices/src/virtio/descriptor_utils.rs | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/devices/src/virtio/descriptor_utils.rs b/devices/src/virtio/descriptor_utils.rs index 2f296e3..0656c06 100644 --- a/devices/src/virtio/descriptor_utils.rs +++ b/devices/src/virtio/descriptor_utils.rs @@ -4,7 +4,6 @@ use std::cmp; use std::io; -use std::mem; use std::os::unix::io::AsRawFd; use data_model::DataInit; @@ -171,9 +170,8 @@ impl<'a> Reader<'a> { } /// Reads an object from the descriptor chain buffer. - pub fn read_obj<T: DataInit>(&mut self) -> Result<T> { - // Safe because DataInit types are safe to initialize from raw data. - let mut object: T = unsafe { mem::uninitialized() }; + pub fn read_obj<T: DataInit + Default>(&mut self) -> Result<T> { + let mut object: T = Default::default(); self.read_exact(object.as_mut_slice()).map(|_| object) } |