feat(git): add size limits for git operations
- Added MAX_CHERRY_PICK_PATCH_BYTES limit of 100MB for cherry-pick operations - Added MAX_ACTION_CONTENT_BYTES limit of 100MB for commit action content - Added MAX_COMMIT_MESSAGE_BYTES limit of 10MB for commit messages - Added MAX_CHECK_REVISIONS limit of 10,000 for revision checks - Added MAX_REBASE_COMMITS limit of 10,000 for rebase operations - Added MAX_REBASE_PATCH_BYTES limit of 100MB for rebase patches - Added MAX_RESOLUTION_CONTENT_BYTES limit of 100MB for merge conflict resolutions - Added MAX_REVERT_PATCH_BYTES limit of 100MB for revert operations - Return InvalidArgument error when size limits are exceeded with descriptive messages
This commit is contained in:
@@ -83,6 +83,13 @@ impl GitBare {
|
||||
&self,
|
||||
request: CheckObjectsExistRequest,
|
||||
) -> GitResult<CheckObjectsExistResponse> {
|
||||
const MAX_CHECK_REVISIONS: usize = 10_000;
|
||||
if request.revisions.len() > MAX_CHECK_REVISIONS {
|
||||
return Err(crate::error::GitError::InvalidArgument(format!(
|
||||
"too many revisions (max {MAX_CHECK_REVISIONS})"
|
||||
)));
|
||||
}
|
||||
|
||||
let repo = self.gix_repo()?;
|
||||
let mut revisions = Vec::new();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user