fix: ramdisk ReadDir reports nonexistent paths as errors

ReadDirAt returned 0 (empty listing) for paths that do not exist at
all, so the libc's stat()/access() - which probe directory-ness via
SYS_READDIR - reported every nonexistent path as an existing
directory. Harmless for two years of callers, fatal for GCC's driver:
it access()-tests the optional specs file, got a false positive for
0:/sdk/lib/gcc/x86_64-montauk/14.2.0/specs, then died failing to read
it.

A path now has to have a directory entry or at least one child to
list as a directory; everything else returns -1. Real empty
directories (tar dir entries, runtime Mkdir) still list as empty.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
danielandClaude Fable 5 committed 2026-07-17 10:10:31 +02:00
1 parent f234c67a2b
commit 3938530508
2 files changed
+9 -1

No files matched your search

+1 -1
View File
@@ -12,4 +12,4 @@
#pragma once
#define MONTAUK_BUILD_NUMBER 19
#define MONTAUK_BUILD_NUMBER 20