authorgravatar for semarie@online.frSébastien Marie <semarie@online.fr> 2020-11-19 13:55:46+00:00
committergravatar for semarie@online.frSébastien Marie <semarie@online.fr> 2020-11-19 13:55:46+00:00
logb174942e6a7e15bf78edc3098fcbcdf1b2fbccd2
tree3a37c574a05b3ed5924413d9106f2de7c68ad666
parent7579ce180f2bf4b5da6ecca5db83af6789c2f576

openbsd, netbsd: getdents: entry with d_fileno==0 should be skipped


1 files changed, 8 insertions(+), 1 deletions(-)

lib/std/fs.zig+8-1
......@@ -399,7 +399,14 @@ pub const Dir = struct {
399399
400400 const name = @ptrCast([*]u8, &bsd_entry.d_name)[0..bsd_entry.d_namlen];
401401
402 if (mem.eql(u8, name, ".") or mem.eql(u8, name, "..")) {
402 const skip_zero_fileno = switch (builtin.os.tag) {
403 // d_fileno=0 is used to mark invalid entries or deleted files.
404 .openbsd, .netbsd => true,
405 else => false,
406 };
407 if (mem.eql(u8, name, ".") or mem.eql(u8, name, "..") or
408 (skip_zero_fileno and bsd_entry.d_fileno == 0))
409 {
403410 continue :start_over;
404411 }
405412