authorgravatar for 10281587+rcalixte@users.noreply.github.comRick Calixte <10281587+rcalixte@users.noreply.github.com> 2025-12-30 23:32:56-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-01-01 20:37:52+01:00
log2bd02883c7260bb60e3c896bba37a7e6f403769f
tree755fc38469022e92eb686040802b48837c7c1e40
parent4ad8bc341328e289744a0cc796043d0dd52bb32d

git.zig: Process data packets of all lengths, discarding unrecognized packets

This addresses the regression specific to GitHub's chunked transfer encoding for larger repositories while leaving existing functionality intact.

1 files changed, 4 insertions(+), 2 deletions(-)

src/Package/Fetch/git.zig+4-2
...@@ -1107,7 +1107,7 @@ pub const Session = struct {...@@ -1107,7 +1107,7 @@ pub const Session = struct {
1107 return error.ReadFailed;1107 return error.ReadFailed;
1108 }) {1108 }) {
1109 .flush => return error.EndOfStream,1109 .flush => return error.EndOfStream,
1110 .data => |data| if (data.len > 1) switch (@as(StreamCode, @enumFromInt(data[0]))) {1110 .data => |data| switch (@as(StreamCode, @enumFromInt(data[0]))) {
1111 .pack_data => {1111 .pack_data => {
1112 input.toss(1);1112 input.toss(1);
1113 fs.remaining_len = data.len - 1;1113 fs.remaining_len = data.len - 1;
...@@ -1117,7 +1117,9 @@ pub const Session = struct {...@@ -1117,7 +1117,9 @@ pub const Session = struct {
1117 fs.err = error.ProtocolError;1117 fs.err = error.ProtocolError;
1118 return error.ReadFailed;1118 return error.ReadFailed;
1119 },1119 },
1120 else => {},1120 else => {
1121 input.toss(data.len);
1122 },
1121 },1123 },
1122 else => {1124 else => {
1123 fs.err = error.UnexpectedPacket;1125 fs.err = error.UnexpectedPacket;