v0.8.5
[0.8.5] - 2026-07-29
Fixed
- Delta decoder now returns
GitErrorfor malformed streams instead of
panicking. Previously, crafted delta input could trigger a shift overflow
on overlong size varints, attempt to allocate an impractically large output
buffer, or silently produce wrong-length output when the instruction stream
produced more bytes than the declared result size. The decoder now:- Rejects varints that would overflow a
usizewith
GitError::InvalidData. - Reserves the output buffer incrementally and caps output at the declared
result size, returningInvalidDataon overrun. - Rejects negative-copy instructions that read before the base buffer.
- Rejects varints that would overflow a
- Pack delta-rebuild path propagates decoder errors.
Packpreviously
called a fallible delta helper directly in the thread pool and could lose
failures.rebuild_delta_with_hashnow reuses the hardened
delta_decodefunction and returnsGitError, and failures are surfaced
throughSharedParamsto the pack decoder's main loop so decode stops
cleanly instead of hanging on a waitlist.
Changed
- Dependency upgrades:
bstr1.12 → 1.13futures0.3.32 → 0.3.33path-absolutize3.1 → 4.0uuid1.23 → 1.24tokio1.52 → 1.53
New Contributors
- @pollychen-lab made their first contribution in #169
Full Changelog: v0.8.4...v0.8,5