[Bug 295537] linuxulator: O_PATH file descriptors return wrong errno for mmap(2) and f*xattr(2)

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 24 May 2026 14:24:33 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295537

--- Comment #1 from YAO, Xin <mr.yaoxin@outlook.com> ---
Using the current FreeBSD 16.0 code, there are 4 failures of the LTP test case
open13

$ /opt/ltp/testcases/bin/open13
tst_tmpdir.c:317: TINFO: Using /tmp/LTP_opeJ6gQkD as tmpdir (tmpfs filesystem)
tst_test.c:2047: TINFO: LTP version: 20260130
tst_test.c:2050: TINFO: Tested kernel: 5.15.0 FreeBSD 16.0-CURRENT #2
main-n286042-28d85db46b48: Sun May 24 21 x86_64
tst_kconfig.c:71: TINFO: Couldn't locate kernel config!
tst_test.c:1877: TINFO: Overall timeout per run is 0h 00m 30s
open13.c:77: TPASS: read() on original FD : EBADF (9)
open13.c:79: TPASS: read() on duplicated FD : EBADF (9)
open13.c:77: TPASS: write() on original FD : EBADF (9)
open13.c:79: TPASS: write() on duplicated FD : EBADF (9)
open13.c:77: TPASS: fchmod() on original FD : EBADF (9)
open13.c:79: TPASS: fchmod() on duplicated FD : EBADF (9)
open13.c:77: TPASS: fchown() on original FD : EBADF (9)
open13.c:79: TPASS: fchown() on duplicated FD : EBADF (9)
open13.c:77: TPASS: ioctl() on original FD : EBADF (9)
open13.c:79: TPASS: ioctl() on duplicated FD : EBADF (9)
open13.c:77: TFAIL: mmap() on original FD expected EBADF: EACCES (13)
open13.c:79: TFAIL: mmap() on duplicated FD expected EBADF: EACCES (13)
open13.c:77: TFAIL: fgetxattr() on original FD expected EBADF: EOPNOTSUPP (95)
open13.c:79: TFAIL: fgetxattr() on duplicated FD expected EBADF: EOPNOTSUPP
(95)

Summary:
passed   10
failed   4
broken   0
skipped  0
warnings 0



And all passed after the fix

$ /opt/ltp/testcases/bin/open13
tst_tmpdir.c:317: TINFO: Using /tmp/LTP_opeiIAOHE as tmpdir (tmpfs filesystem)
tst_test.c:2047: TINFO: LTP version: 20260130
tst_test.c:2050: TINFO: Tested kernel: 5.15.0 FreeBSD 16.0-CURRENT #10
open13-fix-src-22b97fbf255b-dirty: Thu  x86_64
tst_kconfig.c:71: TINFO: Couldn't locate kernel config!
tst_test.c:1877: TINFO: Overall timeout per run is 0h 00m 30s
open13.c:77: TPASS: read() on original FD : EBADF (9)
open13.c:79: TPASS: read() on duplicated FD : EBADF (9)
open13.c:77: TPASS: write() on original FD : EBADF (9)
open13.c:79: TPASS: write() on duplicated FD : EBADF (9)
open13.c:77: TPASS: fchmod() on original FD : EBADF (9)
open13.c:79: TPASS: fchmod() on duplicated FD : EBADF (9)
open13.c:77: TPASS: fchown() on original FD : EBADF (9)
open13.c:79: TPASS: fchown() on duplicated FD : EBADF (9)
open13.c:77: TPASS: ioctl() on original FD : EBADF (9)
open13.c:79: TPASS: ioctl() on duplicated FD : EBADF (9)
open13.c:77: TPASS: mmap() on original FD : EBADF (9)
open13.c:79: TPASS: mmap() on duplicated FD : EBADF (9)
open13.c:77: TPASS: fgetxattr() on original FD : EBADF (9)
open13.c:79: TPASS: fgetxattr() on duplicated FD : EBADF (9)

Summary:
passed   14
failed   0
broken   0
skipped  0
warnings 0

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