From 55c23d19531eb0fc845a134509fc1cced482ae2e Mon Sep 17 00:00:00 2001 From: steven-omaha <35634100+steven-omaha@users.noreply.github.com> Date: Mon, 27 Feb 2023 15:01:44 +0100 Subject: [PATCH] prevent using invalid group names --- crates/pacdef_core/src/core.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/crates/pacdef_core/src/core.rs b/crates/pacdef_core/src/core.rs index 1fe0097..ecdc4cb 100644 --- a/crates/pacdef_core/src/core.rs +++ b/crates/pacdef_core/src/core.rs @@ -307,6 +307,18 @@ impl Pacdef { .context("getting groups from args")? .collect(); + // prevent group names that resolve to directories + for name in &new_group_names { + ensure!( + *name != ".", + crate::Error::InvalidGroupName(".".to_string()) + ); + ensure!( + *name != "..", + crate::Error::InvalidGroupName("..".to_string()) + ); + } + let paths: Vec<_> = new_group_names .into_iter() .map(|name| { @@ -317,9 +329,6 @@ impl Pacdef { .collect(); for file in &paths { - file.file_name() - .ok_or_else(|| crate::Error::InvalidGroupName("..".to_string()))?; - ensure!( !file.exists(), crate::Error::GroupAlreadyExists(file.clone())