From 2e84602de722694c5cce4172e7455f592cee6a03 Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Tue, 28 Mar 2023 21:23:26 +0200 Subject: Git push is now limited to only appropriate paths --- src/git.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/git.rs b/src/git.rs index f7dbe13..b4eb3b2 100644 --- a/src/git.rs +++ b/src/git.rs @@ -50,11 +50,11 @@ pub fn init(repo_name: &str) -> Result { } pub fn upload_pack(upload_pack_args: &GitUploadPackArgs) -> Result<(), ShackleError> { - let mut command = Command::new("git-upload-pack"); if !is_valid_personal_git_repo(&upload_pack_args.directory)? { return Err(ShackleError::InvalidDirectory); } + let mut command = Command::new("git-upload-pack"); if upload_pack_args.strict { command.arg("strict"); } @@ -70,7 +70,6 @@ pub fn upload_pack(upload_pack_args: &GitUploadPackArgs) -> Result<(), ShackleEr if upload_pack_args.advertise_refs { command.arg("advertise-refs"); } - command.arg(&upload_pack_args.directory); command.spawn()?.wait()?; @@ -78,12 +77,14 @@ pub fn upload_pack(upload_pack_args: &GitUploadPackArgs) -> Result<(), ShackleEr } pub fn receive_pack(receive_pack_args: &GitReceivePackArgs) -> Result<(), ShackleError> { - let mut command = Command::new("git-receive-pack"); + if !is_valid_personal_git_repo(&receive_pack_args.directory)? { + return Err(ShackleError::InvalidDirectory); + } + let mut command = Command::new("git-receive-pack"); if receive_pack_args.http_backend_info_refs { command.arg("--http-backend-info-refs"); } - command.arg(&receive_pack_args.directory); command.spawn()?.wait()?; -- cgit v1.2.3