aboutsummaryrefslogtreecommitdiffstats
path: root/src/config.rs
diff options
context:
space:
mode:
authorJonas Diemer <jonasdiemer@gmail.com>2022-08-17 08:28:11 +0000
committerJonas Diemer <jonasdiemer@gmail.com>2022-09-18 18:25:37 +0000
commit5404e4fcb513bd8bf355e730aa37546b16164cad (patch)
tree8b0e0d4a0b23cf598d84423cabc1d6bca38345ec /src/config.rs
parentUse argument -u instead of --allowed-upload-dir (diff)
downloadminiserve-5404e4fcb513bd8bf355e730aa37546b16164cad.tar.gz
miniserve-5404e4fcb513bd8bf355e730aa37546b16164cad.zip
sanitize allowed upload paths for cases like ./dir
Diffstat (limited to 'src/config.rs')
-rw-r--r--src/config.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/config.rs b/src/config.rs
index 4f794d1..1331e7d 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -16,6 +16,7 @@ use rustls_pemfile as pemfile;
use crate::{
args::{CliArgs, MediaType},
auth::RequiredAuth,
+ file_upload::sanitize_path
};
/// Possible characters for random routes
@@ -251,7 +252,7 @@ impl MiniserveConfig {
show_qrcode: args.qrcode,
mkdir_enabled: args.mkdir_enabled,
file_upload: !args.allowed_upload_dir.is_none(),
- allowed_upload_dir: args.allowed_upload_dir.unwrap_or(vec![]),
+ allowed_upload_dir: args.allowed_upload_dir.unwrap_or(vec![]).iter().map(|x| sanitize_path(x, false).unwrap()).collect(),
uploadable_media_type,
tar_enabled: args.enable_tar,
tar_gz_enabled: args.enable_tar_gz,