diff --git a/src/start_address.rs b/src/start_address.rs index e5cd2b6..3f7eea3 100644 --- a/src/start_address.rs +++ b/src/start_address.rs @@ -28,8 +28,9 @@ pub struct Elf64Hdr { pub fn start_address(path: impl AsRef) -> Result { let mut file = File::open(path)?; let mut elf64_hdr = Elf64Hdr::default(); - let buf: &mut [u8] = - unsafe { from_raw_parts_mut((&raw mut elf64_hdr).cast::(), size_of::()) }; + let data = (&raw mut elf64_hdr).cast::(); + let len = size_of::(); + let buf: &mut [u8] = unsafe { from_raw_parts_mut(data, len) }; file.read_exact(buf)?; Ok(elf64_hdr.e_entry) }