https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292282

--- Comment #13 from [email protected] ---
A commit in branch main references this bug:

URL:
https://cgit.FreeBSD.org/src/commit/?id=110f2567cb51f1eeddbd5d9937000ad64f6dc746

commit 110f2567cb51f1eeddbd5d9937000ad64f6dc746
Author:     Rick Macklem <[email protected]>
AuthorDate: 2026-02-07 22:12:55 +0000
Commit:     Rick Macklem <[email protected]>
CommitDate: 2026-02-07 22:12:55 +0000

    linux_file.c: Fix handling of NFS getdents() emulation

    Bugzilla PR#292282 reports a problem, where a Linux
    binary running in the Linuxulator gets bogus entries
    in a readdir()/getdents() reply when the directory is
    an NFS mount.

    This appears to be caused by the NFS client including
    entries with d_fileno == 0, which are always ignored by
    BSD, but are not ignored by Linux.

    This patch filters out the "d_fileno == 0" entries and
    the reporter of the bugzilla PR notes that it fixes the
    problem for him.

    It could be argued that the NFS client should filter out
    the "d_fileno == 0" entries, but the NFS client readdir
    code is "fragile" and any change to it runs a significant
    risk of causing regression type problems.

    As such, since the LInuxulator is already broken for this
    case, it seems safer to filter them out there.

    PR:     292282
    Tested by:      Jerry Williams <[email protected]>
    Reviewed by:    markj
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D54679

 sys/compat/linux/linux_file.c | 178 ++++++++++++++++++++++++++----------------
 1 file changed, 110 insertions(+), 68 deletions(-)

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to