fix(server): validate branch name in set_default_branch
Call validate_ref_name on the user-provided branch name before constructing the symbolic-ref argument to prevent command injection.
This commit is contained in:
@@ -206,6 +206,8 @@ impl repository_service_server::RepositoryService for GitksService {
|
|||||||
}
|
}
|
||||||
Err(err) => return Err(err),
|
Err(err) => return Err(err),
|
||||||
};
|
};
|
||||||
|
crate::sanitize::validate_ref_name(&inner.name)
|
||||||
|
.map_err(|e| tonic::Status::invalid_argument(e.to_string()))?;
|
||||||
let refname = format!("refs/heads/{}", inner.name);
|
let refname = format!("refs/heads/{}", inner.name);
|
||||||
git_cmd(&gb, &["symbolic-ref", "HEAD", &refname])?;
|
git_cmd(&gb, &["symbolic-ref", "HEAD", &refname])?;
|
||||||
tracing::info!(%repo, %name, "default branch set");
|
tracing::info!(%repo, %name, "default branch set");
|
||||||
|
|||||||
Reference in New Issue
Block a user