From 87c79bddf72f9d3e7cbe818465d6d6d4d332eb2c Mon Sep 17 00:00:00 2001 From: Ember Date: Tue, 10 Feb 2026 17:09:55 -0800 Subject: [PATCH] Input validation fix, along with changing expect so it won't crash --- installer-gui/src-tauri/Cargo.toml | 1 + installer-gui/src-tauri/src/lib.rs | 9 ++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/installer-gui/src-tauri/Cargo.toml b/installer-gui/src-tauri/Cargo.toml index 4e849d8..2d26f67 100644 --- a/installer-gui/src-tauri/Cargo.toml +++ b/installer-gui/src-tauri/Cargo.toml @@ -21,4 +21,5 @@ tauri-plugin-opener = "2" serde = { version = "1", features = ["derive"] } serde_json = "1" anyhow = "1.0.100" +shlex = "1" installer = { path = "../../installer" } diff --git a/installer-gui/src-tauri/src/lib.rs b/installer-gui/src-tauri/src/lib.rs index 4e2b635..c81035d 100644 --- a/installer-gui/src-tauri/src/lib.rs +++ b/installer-gui/src-tauri/src/lib.rs @@ -1,14 +1,13 @@ +use anyhow::Context; use tauri::Emitter; async fn run_installer(app_handle: tauri::AppHandle, args: String) -> anyhow::Result<()> { + let args_vec = shlex::split(&args).context("Failed to parse arguments: unclosed quote")?; tauri::async_runtime::spawn_blocking(move || { installer::run_with_callback( - // TODO: we should split using something similar to shlex in python - args.split_whitespace(), + args_vec.iter().map(|s| s.as_str()), Some(Box::new(move |output| { - app_handle - .emit("installer-output", output) - .expect("Error sending Rayhunter CLI installer output to GUI frontend"); + let _ = app_handle.emit("installer-output", output); })), ) })