From ac315529b3af5319cf04c931e412ec80b6f4161f Mon Sep 17 00:00:00 2001 From: Albert S Date: Sat, 26 Sep 2020 18:55:47 +0200 Subject: [PATCH] Only allow alphanumeric and dots for entrynames --- src/main.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 65471e7..0313c25 100644 --- a/src/main.rs +++ b/src/main.rs @@ -262,7 +262,7 @@ fn exec(entryname: &str, cmdargs: &Vec) -> std::io::Result<()> { "Specified entry is outside base directory", )); } - if ! p.is_file() { + if !p.is_file() { return Err(std::io::Error::new( ErrorKind::Other, "Error: Entry not a file", @@ -324,7 +324,12 @@ fn main() -> Result<(), std::io::Error> { let cmdargs: Vec = argv.collect(); let entryname = cmdargs.get(1); if entryname.is_some() { - match exec(&entryname.unwrap(), &cmdargs) { + let entry = entryname.unwrap(); + if !entry.chars().all(|c| c.is_alphanumeric() || c == '.') { + eprintln!("Entry names can only contain alphanumeric characters and dots"); + std::process::exit(1); + } + match exec(entry, &cmdargs) { Err(e) => { eprintln!("The following error ocurred:"); eprintln!("{}", e);