diff --git a/src/custom.rs b/src/custom.rs index 35771f15..c4a25dc6 100644 --- a/src/custom.rs +++ b/src/custom.rs @@ -78,9 +78,9 @@ macro_rules! register_custom_getrandom { ($path:path) => { // We use an extern "C" function to get the guarantees of a stable ABI. #[no_mangle] - extern "C" fn __getrandom_custom(dest: *mut u8, len: usize) -> u32 { + unsafe extern "C" fn __getrandom_custom(dest: *mut u8, len: usize) -> u32 { let f: fn(&mut [u8]) -> Result<(), $crate::Error> = $path; - let slice = unsafe { ::core::slice::from_raw_parts_mut(dest, len) }; + let slice = ::core::slice::from_raw_parts_mut(dest, len); match f(slice) { Ok(()) => 0, Err(e) => e.code().get(),