improve error handling for invalid PID input

This commit is contained in:
Adir Shitrit
2025-11-08 12:21:52 +02:00
parent 3aeffc8735
commit 30614fe77e

View File

@@ -44,11 +44,17 @@ fn main() -> Result<()> {
let mut engine = DetectionEngine::new(); let mut engine = DetectionEngine::new();
let processes = if let Some(pid_str) = target_pid { let processes = if let Some(pid_str) = target_pid {
let pid: u32 = pid_str.parse().expect("Invalid PID format"); let pid: u32 = pid_str.parse().map_err(|_| anyhow::anyhow!("Invalid PID format: {}", pid_str))?;
process::enumerate_processes()? let all_processes = process::enumerate_processes()?;
let filtered: Vec<_> = all_processes
.into_iter() .into_iter()
.filter(|p| p.pid == pid) .filter(|p| p.pid == pid)
.collect() .collect();
if filtered.is_empty() {
println!("Warning: No process found with PID {}", pid);
}
filtered
} else { } else {
process::enumerate_processes()? process::enumerate_processes()?
}; };