diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 6c3968f..00d88da 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -35,7 +35,18 @@ fn docs_dir(app: &AppHandle, dir: &Option) -> PathBuf { } fn safe_name(name: &str) -> bool { - !name.is_empty() && !name.contains(['/', '\\', ':']) && !name.contains("..") + let path = Path::new(name); + let mut components = path.components(); + match components.next() { + Some(std::path::Component::Normal(_)) => { + if components.next().is_none() { + !name.contains(['/', '\\', ':']) + } else { + false + } + } + _ => false, + } } #[tauri::command]