diff options
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/dwarf/dwarf_import/src/die_handlers.rs | 16 | ||||
| -rw-r--r-- | plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs | 2 | ||||
| -rw-r--r-- | plugins/dwarf/dwarf_import/src/helpers.rs | 6 | ||||
| -rw-r--r-- | plugins/dwarf/dwarf_import/src/types.rs | 8 | ||||
| -rw-r--r-- | plugins/dwarf/shared/src/lib.rs | 7 | ||||
| -rw-r--r-- | plugins/idb_import/src/lib.rs | 9 | ||||
| -rw-r--r-- | plugins/idb_import/src/types.rs | 8 | ||||
| -rw-r--r-- | plugins/pdb-ng/src/lib.rs | 12 | ||||
| -rw-r--r-- | plugins/pdb-ng/src/parser.rs | 10 | ||||
| -rw-r--r-- | plugins/pdb-ng/src/struct_grouper.rs | 10 | ||||
| -rw-r--r-- | plugins/pdb-ng/src/symbol_parser.rs | 4 | ||||
| -rw-r--r-- | plugins/pdb-ng/src/type_parser.rs | 10 | ||||
| -rw-r--r-- | plugins/svd/src/mapper.rs | 12 | ||||
| -rw-r--r-- | plugins/svd/src/settings.rs | 12 | ||||
| -rw-r--r-- | plugins/warp/src/convert.rs | 6 | ||||
| -rw-r--r-- | plugins/warp/src/matcher.rs | 14 | ||||
| -rw-r--r-- | plugins/warp/src/plugin.rs | 2 | ||||
| -rw-r--r-- | plugins/warp/src/plugin/create.rs | 4 | ||||
| -rw-r--r-- | plugins/warp/src/plugin/find.rs | 2 | ||||
| -rw-r--r-- | plugins/warp/src/plugin/types.rs | 4 | ||||
| -rw-r--r-- | plugins/warp/src/plugin/workflow.rs | 4 |
21 files changed, 81 insertions, 81 deletions
diff --git a/plugins/dwarf/dwarf_import/src/die_handlers.rs b/plugins/dwarf/dwarf_import/src/die_handlers.rs index 52280320..f71fdabc 100644 --- a/plugins/dwarf/dwarf_import/src/die_handlers.rs +++ b/plugins/dwarf/dwarf_import/src/die_handlers.rs @@ -47,19 +47,19 @@ pub(crate) fn handle_base_type<R: ReaderType>( constants::DW_ATE_address => None, constants::DW_ATE_boolean => Some(Type::bool()), constants::DW_ATE_complex_float => None, - constants::DW_ATE_float => Some(Type::named_float(size, name)), - constants::DW_ATE_signed => Some(Type::named_int(size, true, name)), - constants::DW_ATE_signed_char => Some(Type::named_int(size, true, name)), - constants::DW_ATE_unsigned => Some(Type::named_int(size, false, name)), - constants::DW_ATE_unsigned_char => Some(Type::named_int(size, false, name)), + constants::DW_ATE_float => Some(Type::named_float(size, &name)), + constants::DW_ATE_signed => Some(Type::named_int(size, true, &name)), + constants::DW_ATE_signed_char => Some(Type::named_int(size, true, &name)), + constants::DW_ATE_unsigned => Some(Type::named_int(size, false, &name)), + constants::DW_ATE_unsigned_char => Some(Type::named_int(size, false, &name)), constants::DW_ATE_imaginary_float => None, constants::DW_ATE_packed_decimal => None, constants::DW_ATE_numeric_string => None, constants::DW_ATE_edited => None, constants::DW_ATE_signed_fixed => None, constants::DW_ATE_unsigned_fixed => None, - constants::DW_ATE_decimal_float => Some(Type::named_float(size, name)), - constants::DW_ATE_UTF => Some(Type::named_int(size, false, name)), // TODO : Verify + constants::DW_ATE_decimal_float => Some(Type::named_float(size, &name)), + constants::DW_ATE_UTF => Some(Type::named_int(size, false, &name)), // TODO : Verify constants::DW_ATE_UCS => None, constants::DW_ATE_ASCII => None, // Some sort of array? constants::DW_ATE_lo_user => None, @@ -114,7 +114,7 @@ pub(crate) fn handle_enum<R: ReaderType>( match &child.entry().attr(constants::DW_AT_const_value) { Ok(Some(attr)) => { if let Some(value) = get_attr_as_u64(attr) { - enumeration_builder.insert(name, value); + enumeration_builder.insert(&name, value); } else { // Somehow the child entry is not a const value. log::error!("Unhandled enum member value type for `{}`", name); diff --git a/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs b/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs index 017ed4be..1cedbdf2 100644 --- a/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs +++ b/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs @@ -546,7 +546,7 @@ impl DebugInfoBuilder { assert!(debug_info.add_data_variable( address, &self.get_type(*type_uid).unwrap().ty, - name.clone(), + name.as_deref(), &[] // TODO : Components )); } diff --git a/plugins/dwarf/dwarf_import/src/helpers.rs b/plugins/dwarf/dwarf_import/src/helpers.rs index e23eb498..f2f67170 100644 --- a/plugins/dwarf/dwarf_import/src/helpers.rs +++ b/plugins/dwarf/dwarf_import/src/helpers.rs @@ -14,7 +14,7 @@ use std::ffi::OsStr; use std::path::{Path, PathBuf}; -use std::{collections::HashMap, ops::Deref, str::FromStr, sync::mpsc}; +use std::{ops::Deref, str::FromStr, sync::mpsc}; use crate::{DebugInfoBuilderContext, ReaderType}; use binaryninja::binary_view::BinaryViewBase; @@ -450,8 +450,8 @@ pub(crate) fn download_debug_info( let result = inst .perform_custom_request( "GET", - artifact_url, - HashMap::<String, String>::new(), + &artifact_url, + vec![], DownloadInstanceInputOutputCallbacks { read: None, write: Some(Box::new(write)), diff --git a/plugins/dwarf/dwarf_import/src/types.rs b/plugins/dwarf/dwarf_import/src/types.rs index 1e9dd146..78992510 100644 --- a/plugins/dwarf/dwarf_import/src/types.rs +++ b/plugins/dwarf/dwarf_import/src/types.rs @@ -215,8 +215,8 @@ fn do_structure_parse<R: ReaderType>( }); structure_builder.insert( - child_type.as_ref(), - child_name, + &child_type, + &child_name, struct_offset, false, MemberAccess::NoAccess, // TODO : Resolve actual scopes, if possible @@ -224,8 +224,8 @@ fn do_structure_parse<R: ReaderType>( ); } else { structure_builder.append( - child_type.as_ref(), - child_name, + &child_type, + &child_name, MemberAccess::NoAccess, MemberScope::NoScope, ); diff --git a/plugins/dwarf/shared/src/lib.rs b/plugins/dwarf/shared/src/lib.rs index c4ed7937..7aa3b486 100644 --- a/plugins/dwarf/shared/src/lib.rs +++ b/plugins/dwarf/shared/src/lib.rs @@ -179,9 +179,10 @@ pub fn create_section_reader<'a, Endian: 'a + Endianity>( } } // Truncate Mach-O section names to 16 bytes - else if let Some(section) = - view.section_by_name("__".to_string() + §ion_name[1..section_name.len().min(15)]) - { + else if let Some(section) = view.section_by_name(&format!( + "__{}", + §ion_name[1..section_name.len().min(15)] + )) { Ok(EndianRcSlice::new( Rc::from(view.read_vec(section.start(), section.len()).as_slice()), endian, diff --git a/plugins/idb_import/src/lib.rs b/plugins/idb_import/src/lib.rs index c554831d..46acfd42 100644 --- a/plugins/idb_import/src/lib.rs +++ b/plugins/idb_import/src/lib.rs @@ -198,7 +198,7 @@ pub fn import_til_section( if let TranslateTypeResult::Translated(bn_ty) | TranslateTypeResult::PartiallyTranslated(bn_ty, _) = &ty.ty { - if !debug_info.add_type(ty.name.as_utf8_lossy(), bn_ty, &[/* TODO */]) { + if !debug_info.add_type(&ty.name.as_utf8_lossy(), bn_ty, &[/* TODO */]) { error!("Unable to add type `{}`", ty.name.as_utf8_lossy()) } } @@ -209,7 +209,7 @@ pub fn import_til_section( if let TranslateTypeResult::Translated(bn_ty) | TranslateTypeResult::PartiallyTranslated(bn_ty, _) = &ty.ty { - if !debug_info.add_type(ty.name.as_utf8_lossy(), bn_ty, &[/* TODO */]) { + if !debug_info.add_type(&ty.name.as_utf8_lossy(), bn_ty, &[/* TODO */]) { error!("Unable to fix type `{}`", ty.name.as_utf8_lossy()) } } @@ -239,10 +239,7 @@ fn parse_id0_section_info( } = info; // TODO set comments to address here for function in &bv.functions_containing(addr) { - function.set_comment_at( - addr, - String::from_utf8_lossy(&comments.join(&b"\n"[..])).to_string(), - ); + function.set_comment_at(addr, &String::from_utf8_lossy(&comments.join(&b"\n"[..]))); } let bnty = ty diff --git a/plugins/idb_import/src/types.rs b/plugins/idb_import/src/types.rs index 7b4ca675..b3c9bea0 100644 --- a/plugins/idb_import/src/types.rs +++ b/plugins/idb_import/src/types.rs @@ -335,7 +335,7 @@ impl<F: Fn(usize, usize) -> Result<(), ()>> TranslateIDBTypes<'_, F> { format!("bitfield_{}_{}", offset + start_idx, offset + (i - 1)) }; let field = field_from_bytes(bytes); - struct_builder.append(&field, name, MemberAccess::NoAccess, MemberScope::NoScope); + struct_builder.append(&field, &name, MemberAccess::NoAccess, MemberScope::NoScope); }; for (i, member) in members { @@ -423,7 +423,7 @@ impl<F: Fn(usize, usize) -> Result<(), ()>> TranslateIDBTypes<'_, F> { .as_ref() .map(|name| name.as_utf8_lossy().to_string()) .unwrap_or_else(|| format!("member_{i}")); - structure.append(&mem, name, MemberAccess::NoAccess, MemberScope::NoScope); + structure.append(&mem, &name, MemberAccess::NoAccess, MemberScope::NoScope); } if let Some(start_idx) = first_bitfield_seq { let members_bitrange = &ty_struct.members[start_idx..]; @@ -470,7 +470,7 @@ impl<F: Fn(usize, usize) -> Result<(), ()>> TranslateIDBTypes<'_, F> { .as_ref() .map(|name| name.as_utf8_lossy().to_string()) .unwrap_or_else(|| format!("member_{i}")); - structure.append(&mem, name, MemberAccess::NoAccess, MemberScope::NoScope); + structure.append(&mem, &name, MemberAccess::NoAccess, MemberScope::NoScope); } let str_ref = structure.finalize(); @@ -492,7 +492,7 @@ impl<F: Fn(usize, usize) -> Result<(), ()>> TranslateIDBTypes<'_, F> { .as_ref() .map(|name| name.as_utf8_lossy().to_string()) .unwrap_or_else(|| format!("member_{i}")); - eb.insert(name, member.value); + eb.insert(&name, member.value); } Type::enumeration( &eb.finalize(), diff --git a/plugins/pdb-ng/src/lib.rs b/plugins/pdb-ng/src/lib.rs index 188b2ed5..a87a8076 100644 --- a/plugins/pdb-ng/src/lib.rs +++ b/plugins/pdb-ng/src/lib.rs @@ -13,7 +13,6 @@ // limitations under the License. #![allow(dead_code)] -use std::collections::HashMap; use std::env::{current_dir, current_exe, temp_dir}; use std::io::Cursor; use std::path::PathBuf; @@ -31,7 +30,6 @@ use binaryninja::download_provider::{DownloadInstanceInputOutputCallbacks, Downl use binaryninja::interaction::{MessageBoxButtonResult, MessageBoxButtonSet}; use binaryninja::logger::Logger; use binaryninja::settings::{QueryOptions, Settings}; -use binaryninja::string::BnString; use binaryninja::{interaction, user_directory}; use parser::PDBParserInstance; @@ -196,7 +194,7 @@ fn read_from_sym_store(bv: &BinaryView, path: &str) -> Result<(bool, Vec<u8>)> { .perform_custom_request( "GET", path, - HashMap::<BnString, BnString>::new(), + vec![], DownloadInstanceInputOutputCallbacks { read: None, write: Some(Box::new(write)), @@ -278,21 +276,21 @@ fn search_sym_store( } fn parse_pdb_info(view: &BinaryView) -> Option<PDBInfo> { - match view.get_metadata::<u64, _>("DEBUG_INFO_TYPE") { + match view.get_metadata::<u64>("DEBUG_INFO_TYPE") { Some(Ok(0x53445352 /* 'SDSR' */)) => {} _ => return None, } // This is stored in the BV by the PE loader - let file_path = match view.get_metadata::<String, _>("PDB_FILENAME") { + let file_path = match view.get_metadata::<String>("PDB_FILENAME") { Some(Ok(md)) => md, _ => return None, }; - let mut guid = match view.get_metadata::<Vec<u8>, _>("PDB_GUID") { + let mut guid = match view.get_metadata::<Vec<u8>>("PDB_GUID") { Some(Ok(md)) => md, _ => return None, }; - let age = match view.get_metadata::<u64, _>("PDB_AGE") { + let age = match view.get_metadata::<u64>("PDB_AGE") { Some(Ok(md)) => md as u32, _ => return None, }; diff --git a/plugins/pdb-ng/src/parser.rs b/plugins/pdb-ng/src/parser.rs index 783a8a2d..2ca8e209 100644 --- a/plugins/pdb-ng/src/parser.rs +++ b/plugins/pdb-ng/src/parser.rs @@ -168,7 +168,8 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { ) -> Result<()> { self.parse_types(Self::split_progress(&progress, 0, &[1.0, 3.0, 0.5, 0.5]))?; for (name, ty) in self.named_types.iter() { - self.debug_info.add_type(name, ty.as_ref(), &[]); // TODO : Components + self.debug_info + .add_type(&name.to_string(), ty.as_ref(), &[]); // TODO : Components } info!( @@ -406,7 +407,8 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { match class { NamedTypeReferenceClass::UnknownNamedTypeClass | NamedTypeReferenceClass::TypedefNamedTypeClass => { - self.debug_info.add_type(&name, Type::void().as_ref(), &[]); + self.debug_info + .add_type(&name.to_string(), Type::void().as_ref(), &[]); // TODO : Components } NamedTypeReferenceClass::ClassNamedTypeClass @@ -429,7 +431,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { structure.alignment(1); self.debug_info.add_type( - &name, + &name.to_string(), Type::structure(structure.finalize().as_ref()).as_ref(), &[], // TODO : Components ); @@ -437,7 +439,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { NamedTypeReferenceClass::EnumNamedTypeClass => { let enumeration = EnumerationBuilder::new(); self.debug_info.add_type( - &name, + &name.to_string(), Type::enumeration( enumeration.finalize().as_ref(), self.arch.default_integer_size().try_into()?, diff --git a/plugins/pdb-ng/src/struct_grouper.rs b/plugins/pdb-ng/src/struct_grouper.rs index 09a81fa7..ff911afd 100644 --- a/plugins/pdb-ng/src/struct_grouper.rs +++ b/plugins/pdb-ng/src/struct_grouper.rs @@ -361,7 +361,7 @@ pub fn group_structure( for member in members { structure.insert( &member.ty, - member.name.clone(), + &member.name, member.offset, false, member.access, @@ -390,7 +390,7 @@ fn apply_groups( if offset > member.offset { structure.insert( &member.ty, - member.name.clone(), + &member.name, 0, false, member.access, @@ -399,7 +399,7 @@ fn apply_groups( } else { structure.insert( &member.ty, - member.name.clone(), + &member.name, member.offset - offset, false, member.access, @@ -412,7 +412,7 @@ fn apply_groups( apply_groups(members, &mut inner, children, inner_offset); structure.insert( &Conf::new(Type::structure(inner.finalize().as_ref()), MAX_CONFIDENCE), - format!("__inner{}", i), + &format!("__inner{}", i), inner_offset - offset, false, MemberAccess::PublicAccess, @@ -425,7 +425,7 @@ fn apply_groups( apply_groups(members, &mut inner, children, inner_offset); structure.insert( &Conf::new(Type::structure(inner.finalize().as_ref()), MAX_CONFIDENCE), - format!("__inner{}", i), + &format!("__inner{}", i), inner_offset - offset, false, MemberAccess::PublicAccess, diff --git a/plugins/pdb-ng/src/symbol_parser.rs b/plugins/pdb-ng/src/symbol_parser.rs index 6d6e978e..79049d03 100644 --- a/plugins/pdb-ng/src/symbol_parser.rs +++ b/plugins/pdb-ng/src/symbol_parser.rs @@ -2027,13 +2027,13 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { Some(X86(xreg)) => { self.log(|| format!("Register {:?} ==> {:?}", reg, xreg)); self.arch - .register_by_name(xreg.to_string().to_lowercase()) + .register_by_name(&xreg.to_string().to_lowercase()) .map(|reg| reg.id()) } Some(AMD64(areg)) => { self.log(|| format!("Register {:?} ==> {:?}", reg, areg)); self.arch - .register_by_name(areg.to_string().to_lowercase()) + .register_by_name(&areg.to_string().to_lowercase()) .map(|reg| reg.id()) } // TODO: Other arches diff --git a/plugins/pdb-ng/src/type_parser.rs b/plugins/pdb-ng/src/type_parser.rs index 61c64218..d4d5feb4 100644 --- a/plugins/pdb-ng/src/type_parser.rs +++ b/plugins/pdb-ng/src/type_parser.rs @@ -898,7 +898,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { bitfield_builder .as_mut() .expect("Invariant") - .insert(&m.ty, m.name, 0, false, m.access, m.scope); + .insert(&m.ty, &m.name, 0, false, m.access, m.scope); } (None, None) => { if let Some(mut builder) = bitfield_builder.take() { @@ -1633,7 +1633,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { for field in fields { match field { ParsedType::Enumerate(member) => { - enumeration.insert(member.name.clone(), member.value); + enumeration.insert(&member.name, member.value); } e => return Err(anyhow!("Unexpected enumerate member: {:?}", e)), } @@ -1803,7 +1803,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { if group.len() == 1 { structure.insert( &group[0].ty, - group[0].name.clone(), + &group[0].name, group[0].offset, false, group[0].access, @@ -1814,7 +1814,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { for member in group { inner_struct.insert( &member.ty, - member.name.clone(), + &member.name, member.offset, false, member.access, @@ -1826,7 +1826,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { Type::structure(inner_struct.finalize().as_ref()), MAX_CONFIDENCE, ), - format!("__inner{:x}", i), + &format!("__inner{:x}", i), 0, false, MemberAccess::PublicAccess, diff --git a/plugins/svd/src/mapper.rs b/plugins/svd/src/mapper.rs index 2d511615..314fba76 100644 --- a/plugins/svd/src/mapper.rs +++ b/plugins/svd/src/mapper.rs @@ -205,7 +205,7 @@ impl DeviceMapper { let peripheral_ty_id = format!("SVD:{}", peripheral.name); let id = view.define_auto_type_with_id( &peripheral.name, - peripheral_ty_id, + &peripheral_ty_id, &peripheral_ty, ); let ntr = @@ -224,14 +224,14 @@ impl DeviceMapper { view.define_auto_symbol(&symbol); view.set_comment_at( block_addr, - format!("Buffer block with size {}", address_block.size), + &format!("Buffer block with size {}", address_block.size), ); } AddressBlockUsage::Reserved => { // TODO: What to do for reserved blocks? view.set_comment_at( block_addr, - format!("Reserved block with size {}", address_block.size), + &format!("Reserved block with size {}", address_block.size), ); } } @@ -286,11 +286,11 @@ impl DeviceMapper { for (field_addr, comments) in unaligned_comments { let comment = comments.join("\n"); - view.set_comment_at(field_addr, comment); + view.set_comment_at(field_addr, &comment); } } } - view.file().commit_undo_actions(undo_id); + view.file().commit_undo_actions(&undo_id); } pub fn peripheral_block_memory_info( @@ -662,7 +662,7 @@ impl DeviceMapper { current_value = enumerated_value.value.unwrap_or(current_value + 1); // TODO: The Rust API needs to expose this... let _is_default = enumerated_value.is_default.unwrap_or(false); - enum_builder.insert(enumerated_value.name.to_owned(), current_value); + enum_builder.insert(&enumerated_value.name, current_value); } let enum_width = NonZeroUsize::new(byte_aligned_width as usize).unwrap(); diff --git a/plugins/svd/src/settings.rs b/plugins/svd/src/settings.rs index 9621da64..fb2f680c 100644 --- a/plugins/svd/src/settings.rs +++ b/plugins/svd/src/settings.rs @@ -32,7 +32,7 @@ impl LoadSettings { }); bn_settings.register_setting_json( Self::ADD_BACKING_REGIONS_SETTING, - add_backing_region_props.to_string(), + &add_backing_region_props.to_string(), ); let add_bitfields_props = json!({ @@ -41,8 +41,10 @@ impl LoadSettings { "default" : Self::ADD_BITFIELDS_DEFAULT, "description" : "Whether to add bitfields. Bitfields are not supported by Binary Ninja, so this is a workaround using unions.", }); - bn_settings - .register_setting_json(Self::ADD_BITFIELDS_SETTING, add_bitfields_props.to_string()); + bn_settings.register_setting_json( + Self::ADD_BITFIELDS_SETTING, + &add_bitfields_props.to_string(), + ); let add_comments_props = json!({ "title" : "Add Comments", @@ -51,7 +53,7 @@ impl LoadSettings { "description" : "Whether to add comments. If you see comment placement is off, try disabling this.", }); bn_settings - .register_setting_json(Self::ADD_COMMENTS_SETTING, add_comments_props.to_string()); + .register_setting_json(Self::ADD_COMMENTS_SETTING, &add_comments_props.to_string()); let file_props = json!({ "title" : "SVD File", @@ -60,7 +62,7 @@ impl LoadSettings { "description" : "The SVD File to automatically load when opening the view.", "uiSelectionAction" : "file" }); - bn_settings.register_setting_json(Self::AUTO_LOAD_FILE_SETTING, file_props.to_string()); + bn_settings.register_setting_json(Self::AUTO_LOAD_FILE_SETTING, &file_props.to_string()); } pub fn from_view_settings(view: &BinaryView) -> Self { diff --git a/plugins/warp/src/convert.rs b/plugins/warp/src/convert.rs index 2e0fb3f1..b6c2f7b4 100644 --- a/plugins/warp/src/convert.rs +++ b/plugins/warp/src/convert.rs @@ -431,7 +431,7 @@ pub fn to_bn_type<A: BNArchitecture>(arch: &A, ty: &Type) -> BNRef<BNType> { let base_struct_ntr = match c.guid { Some(guid) => BNNamedTypeReference::new_with_id( NamedTypeReferenceClass::UnknownNamedTypeClass, - guid.to_string(), + &guid.to_string(), base_struct_ntr_name, ), None => BNNamedTypeReference::new( @@ -475,7 +475,7 @@ pub fn to_bn_type<A: BNArchitecture>(arch: &A, ty: &Type) -> BNRef<BNType> { // TODO: Add default name? let member_name = member.name.to_owned().unwrap_or("enum_VAL".into()); let member_value = member.constant; - builder.insert(member_name, member_value); + builder.insert(&member_name, member_value); } // TODO: Warn if enumeration has no size. let width = bits_to_bytes(c.member_type.size().unwrap()) as usize; @@ -545,7 +545,7 @@ pub fn to_bn_type<A: BNArchitecture>(arch: &A, ty: &Type) -> BNRef<BNType> { let ntr_name = c.name.to_owned().unwrap_or(guid_str.clone()); NamedTypeReference::new_with_id( NamedTypeReferenceClass::UnknownNamedTypeClass, - guid_str, + &guid_str, ntr_name, ) } diff --git a/plugins/warp/src/matcher.rs b/plugins/warp/src/matcher.rs index 6352cd7a..0ce258ad 100644 --- a/plugins/warp/src/matcher.rs +++ b/plugins/warp/src/matcher.rs @@ -159,7 +159,7 @@ impl Matcher { if let Some(ref_guid) = c.guid { // NOTE: We do not need to check for cyclic reference here because // NOTE: GUID references are unable to be referenced by themselves. - if view.type_by_id(ref_guid.to_string()).is_none() { + if view.type_by_id(&ref_guid.to_string()).is_none() { // Add the referrer to the view if it is in the Matcher types if let Some(ref_ty) = matcher.types.get(&ref_guid) { inner_add_type_to_view(matcher, view, arch, visited_refs, &ref_ty); @@ -186,7 +186,7 @@ impl Matcher { // All nested types _should_ be added now, we can add this type. // TODO: Do we want to make unnamed types visible? I think we should, but some people might be opposed. let ty_name = ty.name.to_owned().unwrap_or_else(|| ty_id_str.clone()); - view.define_auto_type_with_id(ty_name, ty_id_str, &to_bn_type(arch, ty)); + view.define_auto_type_with_id(ty_name, &ty_id_str, &to_bn_type(arch, ty)); } _ => {} } @@ -409,7 +409,7 @@ impl MatcherSettings { }); bn_settings.register_setting_json( Self::TRIVIAL_FUNCTION_LEN_SETTING, - trivial_function_len_props.to_string(), + &trivial_function_len_props.to_string(), ); let minimum_function_len_props = json!({ @@ -421,7 +421,7 @@ impl MatcherSettings { }); bn_settings.register_setting_json( Self::MINIMUM_FUNCTION_LEN_SETTING, - minimum_function_len_props.to_string(), + &minimum_function_len_props.to_string(), ); let maximum_function_len_props = json!({ @@ -433,7 +433,7 @@ impl MatcherSettings { }); bn_settings.register_setting_json( Self::MAXIMUM_FUNCTION_LEN_SETTING, - maximum_function_len_props.to_string(), + &maximum_function_len_props.to_string(), ); let minimum_matched_constraints_props = json!({ @@ -445,7 +445,7 @@ impl MatcherSettings { }); bn_settings.register_setting_json( Self::MINIMUM_MATCHED_CONSTRAINTS_SETTING, - minimum_matched_constraints_props.to_string(), + &minimum_matched_constraints_props.to_string(), ); let trivial_function_adjacent_allowed_props = json!({ @@ -457,7 +457,7 @@ impl MatcherSettings { }); bn_settings.register_setting_json( Self::TRIVIAL_FUNCTION_ADJACENT_ALLOWED_SETTING, - trivial_function_adjacent_allowed_props.to_string(), + &trivial_function_adjacent_allowed_props.to_string(), ); } diff --git a/plugins/warp/src/plugin.rs b/plugins/warp/src/plugin.rs index b84173f7..ec903f9c 100644 --- a/plugins/warp/src/plugin.rs +++ b/plugins/warp/src/plugin.rs @@ -52,7 +52,7 @@ pub fn on_matched_function(function: &Function, matched: &WarpFunction) { // TODO: Add metadata. (both binja metadata and warp metadata) function.add_tag( &get_warp_tag_type(&view), - matched.guid.to_string(), + &matched.guid.to_string(), None, true, None, diff --git a/plugins/warp/src/plugin/create.rs b/plugins/warp/src/plugin/create.rs index e84e42ad..1dd83e6e 100644 --- a/plugins/warp/src/plugin/create.rs +++ b/plugins/warp/src/plugin/create.rs @@ -31,7 +31,7 @@ impl Command for CreateSignatureFile { let total_functions = view.functions().len(); let done_functions = AtomicUsize::default(); let background_task = binaryninja::background_task::BackgroundTask::new( - format!("Generating signatures... ({}/{})", 0, total_functions), + &format!("Generating signatures... ({}/{})", 0, total_functions), true, ); @@ -43,7 +43,7 @@ impl Command for CreateSignatureFile { .par_iter() .inspect(|_| { done_functions.fetch_add(1, Relaxed); - background_task.set_progress_text(format!( + background_task.set_progress_text(&format!( "Generating signatures... ({}/{})", done_functions.load(Relaxed), total_functions diff --git a/plugins/warp/src/plugin/find.rs b/plugins/warp/src/plugin/find.rs index b2102e5e..accc015d 100644 --- a/plugins/warp/src/plugin/find.rs +++ b/plugins/warp/src/plugin/find.rs @@ -27,7 +27,7 @@ impl Command for FindFunctionFromGUID { let funcs = view.functions(); thread::spawn(move || { let background_task = binaryninja::background_task::BackgroundTask::new( - format!("Searching functions for GUID... {}", searched_guid), + &format!("Searching functions for GUID... {}", searched_guid), false, ); diff --git a/plugins/warp/src/plugin/types.rs b/plugins/warp/src/plugin/types.rs index 057d5f98..41e03cd3 100644 --- a/plugins/warp/src/plugin/types.rs +++ b/plugins/warp/src/plugin/types.rs @@ -35,7 +35,7 @@ impl Command for LoadTypes { let view = view.to_owned(); std::thread::spawn(move || { let background_task = binaryninja::background_task::BackgroundTask::new( - format!("Applying {} types...", data.types.len()), + &format!("Applying {} types...", data.types.len()), true, ); @@ -43,7 +43,7 @@ impl Command for LoadTypes { for comp_ty in data.types { let ty_id = comp_ty.guid.to_string(); let ty_name = comp_ty.ty.name.to_owned().unwrap_or_else(|| ty_id.clone()); - view.define_auto_type_with_id(ty_name, ty_id, &to_bn_type(&arch, &comp_ty.ty)); + view.define_auto_type_with_id(ty_name, &ty_id, &to_bn_type(&arch, &comp_ty.ty)); } log::info!("Type application took {:?}", start.elapsed()); diff --git a/plugins/warp/src/plugin/workflow.rs b/plugins/warp/src/plugin/workflow.rs index 5a857fbb..9f7c4d0d 100644 --- a/plugins/warp/src/plugin/workflow.rs +++ b/plugins/warp/src/plugin/workflow.rs @@ -44,7 +44,7 @@ impl Command for RunMatcher { .for_each(|function| cached_function_matcher(&function)); log::info!("Function matching took {:?}", start.elapsed()); background_task.finish(); - view.file().commit_undo_actions(undo_id); + view.file().commit_undo_actions(&undo_id); // Now we want to trigger re-analysis. view.update_analysis(); }); @@ -66,7 +66,7 @@ pub fn insert_workflow() { .for_each(|function| cached_function_matcher(&function)); log::info!("Function matching took {:?}", start.elapsed()); background_task.finish(); - view.file().commit_undo_actions(undo_id); + view.file().commit_undo_actions(&undo_id); // Now we want to trigger re-analysis. view.update_analysis(); }; |
