Conversation
Entire-Checkpoint: 89bcc035b159
Entire-Checkpoint: 41aca0b5f5b0
Entire-Checkpoint: 7d979c09650c
Entire-Checkpoint: f746128ca448
Entire-Checkpoint: 5452c36ad228
Entire-Checkpoint: 16f246b22b9b
Entire-Checkpoint: 739bc9f1ff64
Entire-Checkpoint: b6f015148701
Entire-Checkpoint: bc317c95b880
Co-authored-by: Stefan Haubold <stefan.haubold@hait.de>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ERRpackets during v2 fetch and validate the acknowledgment flow (delimiter,packfilesection, premature flush) so transport failures aren't silently swallowed.pkt-lineframing: accept empty data packets (length0004) per spec, and reject packets exceeding the 65520-byte limit.info/refsadvertisementContent-Typebefore parsing.unbornentries inls-refsoutput rather than treating them as refs.Note
Medium Risk
Medium risk because it changes low-level Git protocol parsing/validation (pkt-line framing, v2 fetch negotiation, smart HTTP discovery), which can affect interoperability with servers and error handling paths.
Overview
Improves robustness of Git protocol v2 handling by surfacing remote
ERRpackets and validating the v2 fetch acknowledgment flow (including enforcingready→packfilesequencing and rejecting premature flush/invalid sections).Tightens pkt-line decoding to accept empty data packets (
0004) while rejecting lengths beyond the pkt-line max, skipsunbornentries in v2ls-refs, and strengthens smart-HTTP discovery by normalizing trailing slashes in endpoint paths and requiring the expectedinfo/refsadvertisementContent-Typebefore parsing. Documentation renames README “Limits” to “Limitations”.Reviewed by Cursor Bugbot for commit 5890a3d. Configure here.