diff options
| author | caner-akca <94343893+caner-akca@users.noreply.github.com> | 2026-08-30 01:40:49 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-30 01:40:49 +0300 |
| commit | 03ce02e1a7c04426a2881962da661c46e389e8bf (patch) | |
| tree | 3d3186503bbba3c822849d36158b253ccd9531a3 /tests | |
| parent | f807b697353cfa00aa912c7cde4830e863001cf5 (diff) | |
fix: reject oversized git ref files in workspace status reads (#3373)
* fix: reject oversized git ref files in workspace status reads
refs #3343
* fix: treat oversized loose refs as unavailable instead of absent
refs #3343
* fix: classify git ref read errors instead of probing path existence
A loose ref behind a metadata or I/O error (for example an unsearchable
refs/heads directory) previously read as absent, because Path::exists()
also returns false on metadata errors, letting a stale same-name
packed-refs OID enter the workspace status fingerprint. The reader now
classifies the open error itself: NotFound and NotADirectory mean the
loose ref is absent (packed-refs fallback stays legitimate), every other
error marks the ref unavailable with no fallback. This also removes the
racy second existence probe.
refs #3343
* fix: reject empty loose git refs
refs #3343
* fix: reject dangling loose git refs
refs #3343
* fix: reject dangling git refs with invalid target paths
refs #3343
Diffstat (limited to 'tests')
0 files changed, 0 insertions, 0 deletions
