diff options
| author | Mason Reed <mason@vector35.com> | 2025-05-04 19:47:55 -0400 |
|---|---|---|
| committer | Mason Reed <35282038+emesare@users.noreply.github.com> | 2025-05-12 17:45:24 -0400 |
| commit | 788a8b7091bbdde77817030e0836d7a7a786fd99 (patch) | |
| tree | 40e8f8d3c870788259a5acb5d14995cdc1656979 /rust/src/binary_view | |
| parent | a826c589dfc10c542deba7ca3343a462e02d6bde (diff) | |
[Rust] Simplify usage surrounding c strings
`cstring.as_ref().as_ptr() as *const c_char` -> `cstring.as_ptr()`
`cstring.as_ref().as_ptr() as *mut _` -> `cstring.as_ptr()`
`cstring.as_ptr() as *const c_char` -> `cstring.as_ptr()`
With a few fixes for cstrings that might be dropped prematurely.
Diffstat (limited to 'rust/src/binary_view')
| -rw-r--r-- | rust/src/binary_view/memory_map.rs | 74 |
1 files changed, 12 insertions, 62 deletions
diff --git a/rust/src/binary_view/memory_map.rs b/rust/src/binary_view/memory_map.rs index b1737440..3afe0a20 100644 --- a/rust/src/binary_view/memory_map.rs +++ b/rust/src/binary_view/memory_map.rs @@ -5,7 +5,6 @@ use crate::rc::Ref; use crate::segment::SegmentFlags; use crate::string::{AsCStr, BnString}; use binaryninjacore_sys::*; -use std::ffi::c_char; #[derive(PartialEq, Eq, Hash)] pub struct MemoryMap { @@ -52,7 +51,7 @@ impl MemoryMap { unsafe { BNAddBinaryMemoryRegion( self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, + name_raw.as_ptr(), start, view.handle, segment_flags.unwrap_or_default().into_raw(), @@ -71,7 +70,7 @@ impl MemoryMap { unsafe { BNAddDataMemoryRegion( self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, + name_raw.as_ptr(), start, data.as_raw(), segment_flags.unwrap_or_default().into_raw(), @@ -90,7 +89,7 @@ impl MemoryMap { unsafe { BNAddRemoteMemoryRegion( self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, + name_raw.as_ptr(), start, &mut accessor.api_object, segment_flags.unwrap_or_default().into_raw(), @@ -100,12 +99,7 @@ impl MemoryMap { pub fn remove_memory_region(&mut self, name: impl AsCStr) -> bool { let name_raw = name.to_cstr(); - unsafe { - BNRemoveMemoryRegion( - self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, - ) - } + unsafe { BNRemoveMemoryRegion(self.view.handle, name_raw.as_ptr()) } } pub fn active_memory_region_at(&self, addr: u64) -> String { @@ -117,88 +111,44 @@ impl MemoryMap { pub fn memory_region_flags(&self, name: impl AsCStr) -> SegmentFlags { let name_raw = name.to_cstr(); - let flags_raw = unsafe { - BNGetMemoryRegionFlags( - self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, - ) - }; + let flags_raw = unsafe { BNGetMemoryRegionFlags(self.view.handle, name_raw.as_ptr()) }; SegmentFlags::from_raw(flags_raw) } pub fn set_memory_region_flags(&mut self, name: impl AsCStr, flags: SegmentFlags) -> bool { let name_raw = name.to_cstr(); - unsafe { - BNSetMemoryRegionFlags( - self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, - flags.into_raw(), - ) - } + unsafe { BNSetMemoryRegionFlags(self.view.handle, name_raw.as_ptr(), flags.into_raw()) } } pub fn is_memory_region_enabled(&self, name: impl AsCStr) -> bool { let name_raw = name.to_cstr(); - unsafe { - BNIsMemoryRegionEnabled( - self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, - ) - } + unsafe { BNIsMemoryRegionEnabled(self.view.handle, name_raw.as_ptr()) } } pub fn set_memory_region_enabled(&mut self, name: impl AsCStr, enabled: bool) -> bool { let name_raw = name.to_cstr(); - unsafe { - BNSetMemoryRegionEnabled( - self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, - enabled, - ) - } + unsafe { BNSetMemoryRegionEnabled(self.view.handle, name_raw.as_ptr(), enabled) } } // TODO: Should we just call this is_memory_region_relocatable? pub fn is_memory_region_rebaseable(&self, name: impl AsCStr) -> bool { let name_raw = name.to_cstr(); - unsafe { - BNIsMemoryRegionRebaseable( - self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, - ) - } + unsafe { BNIsMemoryRegionRebaseable(self.view.handle, name_raw.as_ptr()) } } pub fn set_memory_region_rebaseable(&mut self, name: impl AsCStr, enabled: bool) -> bool { let name_raw = name.to_cstr(); - unsafe { - BNSetMemoryRegionRebaseable( - self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, - enabled, - ) - } + unsafe { BNSetMemoryRegionRebaseable(self.view.handle, name_raw.as_ptr(), enabled) } } pub fn memory_region_fill(&self, name: impl AsCStr) -> u8 { let name_raw = name.to_cstr(); - unsafe { - BNGetMemoryRegionFill( - self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, - ) - } + unsafe { BNGetMemoryRegionFill(self.view.handle, name_raw.as_ptr()) } } pub fn set_memory_region_fill(&mut self, name: impl AsCStr, fill: u8) -> bool { let name_raw = name.to_cstr(); - unsafe { - BNSetMemoryRegionFill( - self.view.handle, - name_raw.as_ref().as_ptr() as *const c_char, - fill, - ) - } + unsafe { BNSetMemoryRegionFill(self.view.handle, name_raw.as_ptr(), fill) } } pub fn reset(&mut self) { |
