summaryrefslogtreecommitdiff
path: root/plugins/warp/src/plugin
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2024-10-24 19:17:11 -0400
committerMason Reed <mason@vector35.com>2024-10-24 19:17:11 -0400
commitf9ff195350d6dc0bf19627cf1f19e36b20890a31 (patch)
treeca6f7f604146ea2efe96d93f439d8f9630c8df45 /plugins/warp/src/plugin
parente151425087b6c0ee8c4d099bfc2d6d1268201db0 (diff)
Make WARP function guid generation infallible
Diffstat (limited to 'plugins/warp/src/plugin')
-rw-r--r--plugins/warp/src/plugin/apply.rs2
-rw-r--r--plugins/warp/src/plugin/copy.rs22
-rw-r--r--plugins/warp/src/plugin/create.rs10
-rw-r--r--plugins/warp/src/plugin/find.rs2
4 files changed, 15 insertions, 21 deletions
diff --git a/plugins/warp/src/plugin/apply.rs b/plugins/warp/src/plugin/apply.rs
index 56c09d77..78cb3be8 100644
--- a/plugins/warp/src/plugin/apply.rs
+++ b/plugins/warp/src/plugin/apply.rs
@@ -60,7 +60,7 @@ impl Command for ApplySignatureFile {
.par_iter()
.filter_map(|func| {
let llil = func.low_level_il_if_available()?;
- let pattern = cached_function_guid(&func, &llil)?;
+ let pattern = cached_function_guid(&func, &llil);
Some((func, data_functions.get(&pattern)?))
})
.filter(|(_, sig)| sig.len() == 1)
diff --git a/plugins/warp/src/plugin/copy.rs b/plugins/warp/src/plugin/copy.rs
index ee91fb4a..d539a430 100644
--- a/plugins/warp/src/plugin/copy.rs
+++ b/plugins/warp/src/plugin/copy.rs
@@ -12,20 +12,14 @@ impl FunctionCommand for CopyFunctionGUID {
log::error!("Could not get low level il for copied function");
return;
};
- if let Some(guid) = cached_function_guid(func, &llil) {
- log::info!(
- "Function GUID for {}... {}",
- func.symbol().short_name().to_string(),
- guid
- );
- if let Ok(mut clipboard) = arboard::Clipboard::new() {
- let _ = clipboard.set_text(guid.to_string());
- }
- } else {
- log::error!(
- "Failed to create GUID for function... 0x{:0x}",
- func.start()
- );
+ let guid = cached_function_guid(func, &llil);
+ log::info!(
+ "Function GUID for {}... {}",
+ func.symbol().short_name().to_string(),
+ guid
+ );
+ if let Ok(mut clipboard) = arboard::Clipboard::new() {
+ let _ = clipboard.set_text(guid.to_string());
}
}
diff --git a/plugins/warp/src/plugin/create.rs b/plugins/warp/src/plugin/create.rs
index 2b1ad60e..b404ae1c 100644
--- a/plugins/warp/src/plugin/create.rs
+++ b/plugins/warp/src/plugin/create.rs
@@ -31,11 +31,11 @@ impl Command for CreateSignatureFile {
let start = Instant::now();
let mut data = warp::signature::Data::default();
- data.functions.par_extend(
- view.functions()
- .par_iter()
- .filter_map(|func| cached_function(&func, func.low_level_il().ok()?.as_ref())),
- );
+ data.functions
+ .par_extend(view.functions().par_iter().filter_map(|func| {
+ let llil = func.low_level_il().ok()?;
+ Some(cached_function(&func, &llil))
+ }));
data.types.extend(view.types().iter().map(|ty| {
let ref_ty = ty.type_object().to_owned();
ComputedType::new(from_bn_type(&view, ref_ty, u8::MAX))
diff --git a/plugins/warp/src/plugin/find.rs b/plugins/warp/src/plugin/find.rs
index 7f089c2f..6d6c5bc1 100644
--- a/plugins/warp/src/plugin/find.rs
+++ b/plugins/warp/src/plugin/find.rs
@@ -37,7 +37,7 @@ impl Command for FindFunctionFromGUID {
.filter_map(|func| {
Some((
func.clone(),
- cached_function_guid(&func, func.low_level_il_if_available()?.as_ref())?,
+ cached_function_guid(&func, func.low_level_il_if_available()?.as_ref()),
))
})
.filter(|(_func, guid)| guid.eq(&searched_guid))