summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-05-10 21:56:06 -0400
committerMason Reed <35282038+emesare@users.noreply.github.com>2025-05-12 17:45:24 -0400
commitd23808b24efdda0e510bb70f8c6ece41e9b4347b (patch)
tree9b13de9c03926e947be509884293829b6b95807b
parent7ddeeccc4ae262b2f7cba8dfd1207d15b91d907c (diff)
[Rust] Misc cleanup
-rw-r--r--rust/src/logger.rs19
-rw-r--r--rust/tests/collaboration.rs7
2 files changed, 7 insertions, 19 deletions
diff --git a/rust/src/logger.rs b/rust/src/logger.rs
index ad6bd9d1..2735dd2f 100644
--- a/rust/src/logger.rs
+++ b/rust/src/logger.rs
@@ -35,10 +35,10 @@ use binaryninjacore_sys::{
};
use crate::rc::{Ref, RefCountable};
-use crate::string::{BnString, IntoCStr};
+use crate::string::{raw_to_string, BnString, IntoCStr};
use log;
use log::LevelFilter;
-use std::ffi::{CStr, CString};
+use std::ffi::CString;
use std::os::raw::{c_char, c_void};
use std::ptr::NonNull;
@@ -138,7 +138,6 @@ impl log::Log for Ref<Logger> {
};
if let Ok(msg) = CString::new(format!("{}", record.args())) {
- let percent_s = CString::new("%s").expect("'%s' has no null bytes");
let logger_name = self.name().to_cstr();
unsafe {
BNLog(
@@ -146,7 +145,7 @@ impl log::Log for Ref<Logger> {
level,
logger_name.as_ptr(),
0,
- percent_s.as_ptr(),
+ c"%s".as_ptr(),
msg.as_ptr(),
);
}
@@ -160,7 +159,7 @@ unsafe impl Send for Logger {}
unsafe impl Sync for Logger {}
pub trait LogListener: 'static + Sync {
- fn log(&self, session: usize, level: Level, msg: &CStr, logger_name: &CStr, tid: usize);
+ fn log(&self, session: usize, level: Level, msg: &str, logger_name: &str, tid: usize);
fn level(&self) -> Level;
fn close(&self) {}
}
@@ -220,13 +219,9 @@ extern "C" fn cb_log<L>(
{
ffi_wrap!("LogListener::log", unsafe {
let listener = &*(ctxt as *const L);
- listener.log(
- session,
- level,
- CStr::from_ptr(msg),
- CStr::from_ptr(logger_name),
- tid,
- );
+ let msg_str = raw_to_string(msg).unwrap();
+ let logger_name_str = raw_to_string(logger_name).unwrap();
+ listener.log(session, level, &msg_str, &logger_name_str, tid);
})
}
diff --git a/rust/tests/collaboration.rs b/rust/tests/collaboration.rs
index 3526a6f8..85f8702e 100644
--- a/rust/tests/collaboration.rs
+++ b/rust/tests/collaboration.rs
@@ -20,13 +20,6 @@ fn temp_project_scope<T: Fn(&RemoteProject)>(remote: &Remote, project_name: &str
// TODO: have connected by the time this errors out. Maybe?
let _ = remote.connect();
}
-
- if let Ok(home_dir) = env::var("HOME").or_else(|_| env::var("USERPROFILE")) {
- eprintln!("Current user directory: {}", home_dir);
- } else {
- eprintln!("Unable to determine the current user directory.");
- }
-
let project = remote
.create_project(project_name, "Test project for test purposes")
.expect("Failed to create project");