Skip to content

fs: fix fileWalk nil-deref on an error-yielding DirEntries - #179

Merged
srerickson merged 2 commits into
mainfrom
claude/github-issue-173-walk-nil-deref
Aug 26, 2026
Merged

fs: fix fileWalk nil-deref on an error-yielding DirEntries#179
srerickson merged 2 commits into
mainfrom
claude/github-issue-173-walk-nil-deref

Conversation

@srerickson

Copy link
Copy Markdown
Owner

fileWalk fell through to e.Name() and e.Info() after yielding a nil
entry's error, panicking on any error-yielding DirEntriesFS -- which
DirEntriesFS's own contract permits and ocflfs.DirEntries produces
whenever fsys isn't a DirEntriesFS. Continue after each error yield
instead, and skip a nil entry paired with a nil error defensively.

Unskipping the regression tests this unblocks also exposed that
local.FS.DirEntries didn't normalize the Op/Path on a ReadDir error
the way it does for Open's, so a listing failure leaked the absolute
OS path instead of the name the caller passed in. Fixed alongside,
since it's the same walk-error contract the unskipped tests assert.

Fixes #173.

claude added 2 commits August 26, 2026 13:13
fileWalk fell through to e.Name() and e.Info() after yielding a nil
entry's error, panicking on any error-yielding DirEntriesFS -- which
DirEntriesFS's own contract permits and ocflfs.DirEntries produces
whenever fsys isn't a DirEntriesFS. Continue after each error yield
instead, and skip a nil entry paired with a nil error defensively.

Unskipping the regression tests this unblocks also exposed that
local.FS.DirEntries didn't normalize the Op/Path on a ReadDir error
the way it does for Open's, so a listing failure leaked the absolute
OS path instead of the name the caller passed in. Fixed alongside,
since it's the same walk-error contract the unskipped tests assert.

Fixes #173.
The trailing sentence tracked which of the doc's skip examples had
already landed (#163, #173) versus which was still open (#166). With
#173 now fixed alongside this package's own skip removal, the note is
stale history rather than documentation of current behavior -- the
#166 example above it already says everything a reader needs.
@srerickson
srerickson merged commit 8449b2a into main Aug 26, 2026
1 check passed
@srerickson
srerickson deleted the claude/github-issue-173-walk-nil-deref branch August 26, 2026 13:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fs: fileWalk panics on an error-yielding DirEntries

2 participants