From ffaad561cb2072dc75f068e62dbfa19c030640ce Mon Sep 17 00:00:00 2001 From: peamaeq <104552320+peamaeq@users.noreply.github.com> Date: Sat, 21 May 2022 01:37:22 +0800 Subject: [PATCH] Reduced scope of unsafe block (#637) * '0517' * 0517 --- libafl/src/bolts/llmp.rs | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/libafl/src/bolts/llmp.rs b/libafl/src/bolts/llmp.rs index 7d5d969869..b7235bf994 100644 --- a/libafl/src/bolts/llmp.rs +++ b/libafl/src/bolts/llmp.rs @@ -585,9 +585,9 @@ impl LlmpMsg { /// Returns true, if the pointer is, indeed, in the page of this shared map. #[inline] pub fn in_shmem(&self, map: &mut LlmpSharedMap) -> bool { + let map_size = map.shmem.as_slice().len(); + let buf_ptr = self.buf.as_ptr(); unsafe { - let map_size = map.shmem.as_slice().len(); - let buf_ptr = self.buf.as_ptr(); if buf_ptr > (map.page_mut() as *const u8).add(size_of::()) && buf_ptr <= (map.page_mut() as *const u8).add(map_size - size_of::()) { @@ -1733,17 +1733,16 @@ where #[allow(clippy::cast_ptr_alignment)] pub fn msg_from_offset(&mut self, offset: u64) -> Result<*mut LlmpMsg, Error> { let offset = offset as usize; - unsafe { - let page = self.page_mut(); - let page_size = self.shmem.as_slice().len() - size_of::(); - if offset > page_size { - Err(Error::illegal_argument(format!( - "Msg offset out of bounds (size: {}, requested offset: {})", - page_size, offset - ))) - } else { - Ok(((*page).messages.as_mut_ptr() as *mut u8).add(offset) as *mut LlmpMsg) - } + + let page = unsafe { self.page_mut() }; + let page_size = self.shmem.as_slice().len() - size_of::(); + if offset > page_size { + Err(Error::illegal_argument(format!( + "Msg offset out of bounds (size: {}, requested offset: {})", + page_size, offset + ))) + } else { + unsafe { Ok(((*page).messages.as_mut_ptr() as *mut u8).add(offset) as *mut LlmpMsg) } } } }