diff options
author | Justin Wernick <justin@worthe-it.co.za> | 2023-03-28 21:23:26 +0200 |
---|---|---|
committer | Justin Wernick <justin@worthe-it.co.za> | 2023-03-28 21:23:26 +0200 |
commit | 2e84602de722694c5cce4172e7455f592cee6a03 (patch) | |
tree | c85886c7dca0d44870a574238c4f0cb36a4e8de2 /src | |
parent | 2e8f9e8043594c8e8ce57daabe4a26a8fb7e9826 (diff) |
Git push is now limited to only appropriate paths
Diffstat (limited to 'src')
-rw-r--r-- | src/git.rs | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -50,11 +50,11 @@ pub fn init(repo_name: &str) -> Result<GitInitResult, ShackleError> { } 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()?; |