summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-05-07 23:20:15 -0400
committerMason Reed <35282038+emesare@users.noreply.github.com>2025-05-12 17:45:24 -0400
commit36a7bb2da7f77074203f5d785dbd82afe1befcad (patch)
tree869974517d8a77badfb67366e01d20c048659e0b
parentf2ecf39fac3b4d7bb97d254ba3b2552b2ddd90ad (diff)
[Rust] Retain core string for section strings
Might want to key off the section string in the core, so we should give it back as a `BnString`
-rw-r--r--rust/src/binary_view.rs6
-rw-r--r--rust/src/section.rs8
2 files changed, 7 insertions, 7 deletions
diff --git a/rust/src/binary_view.rs b/rust/src/binary_view.rs
index 35383f0b..04a60a0d 100644
--- a/rust/src/binary_view.rs
+++ b/rust/src/binary_view.rs
@@ -871,7 +871,7 @@ pub trait BinaryViewExt: BinaryViewBase {
section.create(self.as_ref());
}
- fn remove_auto_section(&self, name: &str) {
+ fn remove_auto_section(&self, name: impl IntoCStr) {
let raw_name = name.to_cstr();
let raw_name_ptr = raw_name.as_ptr();
unsafe {
@@ -879,7 +879,7 @@ pub trait BinaryViewExt: BinaryViewBase {
}
}
- fn remove_user_section(&self, name: &str) {
+ fn remove_user_section(&self, name: impl IntoCStr) {
let raw_name = name.to_cstr();
let raw_name_ptr = raw_name.as_ptr();
unsafe {
@@ -887,7 +887,7 @@ pub trait BinaryViewExt: BinaryViewBase {
}
}
- fn section_by_name(&self, name: &str) -> Option<Ref<Section>> {
+ fn section_by_name(&self, name: impl IntoCStr) -> Option<Ref<Section>> {
unsafe {
let raw_name = name.to_cstr();
let name_ptr = raw_name.as_ptr();
diff --git a/rust/src/section.rs b/rust/src/section.rs
index a86c54e2..77e40232 100644
--- a/rust/src/section.rs
+++ b/rust/src/section.rs
@@ -121,12 +121,12 @@ impl Section {
unsafe { BNSectionGetSemantics(self.handle).into() }
}
- pub fn linked_section(&self) -> String {
- unsafe { BnString::into_string(BNSectionGetLinkedSection(self.handle)) }
+ pub fn linked_section(&self) -> BnString {
+ unsafe { BnString::from_raw(BNSectionGetLinkedSection(self.handle)) }
}
- pub fn info_section(&self) -> String {
- unsafe { BnString::into_string(BNSectionGetInfoSection(self.handle)) }
+ pub fn info_section(&self) -> BnString {
+ unsafe { BnString::from_raw(BNSectionGetInfoSection(self.handle)) }
}
pub fn info_data(&self) -> u64 {