summaryrefslogtreecommitdiff
path: root/rust/src/lib.rs
diff options
context:
space:
mode:
authorKyleMiles <krm504@nyu.edu>2023-09-20 14:40:22 -0400
committerKyleMiles <krm504@nyu.edu>2023-09-20 15:06:35 -0400
commit052a8d2adb0c7899ae875c03da4edf80b2fa1a81 (patch)
tree51fef92c717c7cc3af22446e97aed1bb1fd0bedb /rust/src/lib.rs
parentaf2e0455c082239b21bceffbaa1684f795cb1452 (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.rs7
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
},
)
};