From 052a8d2adb0c7899ae875c03da4edf80b2fa1a81 Mon Sep 17 00:00:00 2001 From: KyleMiles Date: Wed, 20 Sep 2023 14:40:22 -0400 Subject: Rust API : FFI Fix, was leaking some non-null-terminated strings to the core..fix passing a nullptr to `load` --- rust/src/lib.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'rust/src/lib.rs') 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(filename: S) -> Option> { 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( if let Some(options) = options { options.as_ref().handle } else { - null_mut() as *mut _ + Metadata::new_of_type(MetadataType::KeyValueDataType).handle }, ) }; -- cgit v1.3.1