Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions zeroize/src/aarch64.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//! [`Zeroize`] impls for ARM64 SIMD registers.

use crate::{Zeroize, optimization_barrier, volatile_write};
use crate::{Zeroize, volatile_write};

use core::arch::aarch64::*;

Expand All @@ -11,7 +11,6 @@ macro_rules! impl_zeroize_for_simd_register {
#[inline]
fn zeroize(&mut self) {
volatile_write(self, unsafe { core::mem::zeroed() });
optimization_barrier(self);
}
}
)+
Expand Down
11 changes: 1 addition & 10 deletions zeroize/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,6 @@ where
{
fn zeroize(&mut self) {
volatile_write(self, Z::default());
optimization_barrier(self);
}
}

Expand Down Expand Up @@ -307,7 +306,6 @@ macro_rules! impl_zeroize_for_non_zero {
None => unreachable!(),
};
volatile_write(self, ONE);
optimization_barrier(self);
}
}
)+
Expand Down Expand Up @@ -401,8 +399,6 @@ where
// already done semantically. Any value which needed to be dropped will have been
// done so by take().
unsafe { ptr::write_volatile(self, None) }

optimization_barrier(self);
}
}

Expand All @@ -415,10 +411,8 @@ impl<Z> ZeroizeOnDrop for Option<Z> where Z: ZeroizeOnDrop {}
/// [`MaybeUninit`] removes all invariants.
impl<Z> Zeroize for MaybeUninit<Z> {
fn zeroize(&mut self) {
// Safety:
// `MaybeUninit` is valid for any byte pattern, including zeros.
// SAFETY: `MaybeUninit` is valid for any byte pattern, including zeros.
unsafe { ptr::write_volatile(self, MaybeUninit::zeroed()) }
optimization_barrier(self);
}
}

Expand All @@ -444,7 +438,6 @@ impl<Z> Zeroize for [MaybeUninit<Z>] {
// and 0 is a valid value for `MaybeUninit<Z>`
// The memory of the slice should not wrap around the address space.
unsafe { volatile_set(ptr, MaybeUninit::zeroed(), size) }
optimization_barrier(self);
}
}

Expand All @@ -470,7 +463,6 @@ where
// `self.len()` is also not larger than an `isize`, because of the assertion above.
// The memory of the slice should not wrap around the address space.
unsafe { volatile_set(self.as_mut_ptr(), Z::default(), self.len()) };
optimization_barrier(self);
}
}

Expand Down Expand Up @@ -826,7 +818,6 @@ pub unsafe fn zeroize_flat_type<F: Sized>(data: *mut F) {
unsafe {
volatile_set(data.cast::<u8>(), 0, size);
}
optimization_barrier(&data);
}

/// Internal module used as support for `AssertZeroizeOnDrop`.
Expand Down
3 changes: 1 addition & 2 deletions zeroize/src/x86.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//! [`Zeroize`] impls for x86 SIMD registers

use crate::{Zeroize, optimization_barrier, volatile_write};
use crate::{Zeroize, volatile_write};

#[cfg(target_arch = "x86")]
use core::arch::x86::*;
Expand All @@ -14,7 +14,6 @@ macro_rules! impl_zeroize_for_simd_register {
#[inline]
fn zeroize(&mut self) {
volatile_write(self, unsafe { core::mem::zeroed() });
optimization_barrier(self);
}
}
)*
Expand Down