From 30614fe77ef53772637846265380eff6bece4094 Mon Sep 17 00:00:00 2001 From: Adir Shitrit Date: Sat, 8 Nov 2025 12:21:52 +0200 Subject: [PATCH] improve error handling for invalid PID input --- ghost-cli/src/main.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ghost-cli/src/main.rs b/ghost-cli/src/main.rs index 0d4f697..8c1fba3 100644 --- a/ghost-cli/src/main.rs +++ b/ghost-cli/src/main.rs @@ -44,11 +44,17 @@ fn main() -> Result<()> { let mut engine = DetectionEngine::new(); let processes = if let Some(pid_str) = target_pid { - let pid: u32 = pid_str.parse().expect("Invalid PID format"); - process::enumerate_processes()? + let pid: u32 = pid_str.parse().map_err(|_| anyhow::anyhow!("Invalid PID format: {}", pid_str))?; + let all_processes = process::enumerate_processes()?; + let filtered: Vec<_> = all_processes .into_iter() .filter(|p| p.pid == pid) - .collect() + .collect(); + + if filtered.is_empty() { + println!("Warning: No process found with PID {}", pid); + } + filtered } else { process::enumerate_processes()? };