Opened 2 weeks ago

Closed 2 weeks ago

#19056 closed bug (duplicate)

linkat() does not fail with EBADF when it should

Reported by: bhaible Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: System/POSIX Version: R1/beta5
Keywords: Cc:
Blocked By: #19048 Blocking:
Platform: All

Description

POSIX https://pubs.opengroup.org/onlinepubs/9799919799/functions/link.html specifies that the linkat() function "shall fail" with error code EBADF if "The path1 or path2 argument does not specify an absolute path and the fd1 or fd2 argument, respectively, is neither AT_FDCWD nor a valid file descriptor open for reading or searching."

This does not work in Haiku hrev57823 (from 2024-07-15): it fails with error code ENOENT instead.

How to reproduce: Compile and run the attached test program.

gcc -Wall foo.c
./a.out

Expected output:

ret = -1, errno == EBADF
ret = -1, errno == EBADF
OK

Actual output:

ret = -1, errno == No such file or directory
ret = -1, errno == No such file or directory
a.out: foo.c:41:main: !fail
Kill Thread

Attachments (1)

foo.c (842 bytes ) - added by bhaible 2 weeks ago.
test case foo.c

Download all attachments as: .zip

Change History (2)

by bhaible, 2 weeks ago

Attachment: foo.c added

test case foo.c

comment:1 by waddlesplash, 2 weeks ago

Blocked By: 19048 added
Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.