diff options
| author | KyleMiles <krm504@nyu.edu> | 2023-09-20 14:40:22 -0400 |
|---|---|---|
| committer | KyleMiles <krm504@nyu.edu> | 2023-09-20 15:06:35 -0400 |
| commit | 052a8d2adb0c7899ae875c03da4edf80b2fa1a81 (patch) | |
| tree | 51fef92c717c7cc3af22446e97aed1bb1fd0bedb /rust/src/lib.rs | |
| parent | af2e0455c082239b21bceffbaa1684f795cb1452 (diff) | |
Rust API : FFI Fix, was leaking some non-null-terminated strings to the core..fix passing a nullptr to `load`
Diffstat (limited to 'rust/src/lib.rs')
| -rw-r--r-- | rust/src/lib.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/rust/src/lib.rs b/rust/src/lib.rs index 7039a69d..352ecef9 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -166,12 +166,12 @@ pub mod templatesimplifier; pub mod types; use std::path::PathBuf; -use std::ptr::null_mut; pub use binaryninjacore_sys::BNBranchType as BranchType; pub use binaryninjacore_sys::BNEndianness as Endianness; use binaryview::BinaryView; use metadata::Metadata; +use metadata::MetadataType; use rc::Ref; use string::BnStrCompatible; @@ -197,13 +197,14 @@ const BN_INVALID_EXPR: usize = usize::MAX; pub fn load<S: BnStrCompatible>(filename: S) -> Option<rc::Ref<binaryview::BinaryView>> { let filename = filename.into_bytes_with_nul(); + let metadata = Metadata::new_of_type(MetadataType::KeyValueDataType); let handle = unsafe { binaryninjacore_sys::BNLoadFilename( filename.as_ref().as_ptr() as *mut _, true, None, - null_mut() as *mut _, + metadata.handle, ) }; @@ -235,7 +236,7 @@ pub fn load_with_options<S: BnStrCompatible>( if let Some(options) = options { options.as_ref().handle } else { - null_mut() as *mut _ + Metadata::new_of_type(MetadataType::KeyValueDataType).handle }, ) }; |
