From 427d9b3cca09375e9e3ca5c8d864ca01368b6498 Mon Sep 17 00:00:00 2001 From: Satyam Singh Date: Thu, 22 Dec 2022 20:26:22 +0530 Subject: [PATCH] Add path validation --- server/src/option.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server/src/option.rs b/server/src/option.rs index c9835e87b..e62bcc550 100644 --- a/server/src/option.rs +++ b/server/src/option.rs @@ -199,7 +199,8 @@ pub struct Server { long, env = "P_STAGING_DIR", default_value = "./data", - value_name = "path" + value_name = "path", + value_parser = validation::absolute_path )] pub local_staging_path: PathBuf, @@ -260,4 +261,11 @@ pub(self) mod validation { Ok(path) } + + pub fn absolute_path(s: &str) -> Result { + std::fs::canonicalize(s).map_err(|_| { + "Could not construct absolute path from given path value for staging directory" + .to_string() + }) + } }