]> git.99rst.org Git - git.git/commit
wrapper: NetBSD gives EFTYPE and FreeBSD gives EMFILE where POSIX uses ELOOP
authorCollin Funk <redacted>
Tue, 6 May 2025 01:08:59 +0000 (18:08 -0700)
committerJunio C Hamano <redacted>
Tue, 6 May 2025 16:43:22 +0000 (09:43 -0700)
commitf47bcc3413a946b2735fce84e66efd47cb7be2d2
tree8318127aee778f81a10b236200321ca0a24a6e43
parentd50a5e8939abfc07c2ff97ae72e9330939b36ee0
wrapper: NetBSD gives EFTYPE and FreeBSD gives EMFILE where POSIX uses ELOOP

As documented on NetBSD's man page, open with the O_NOFOLLOW flag and a
symlink returns -1 and sets errno to EFTYPE which differs from POSIX.

This patch fixes the following test failure:

    $ sh t0602-reffiles-fsck.sh --verbose
    --- expect 2025-05-02 23:05:23.920890147 +0000
    +++ err 2025-05-02 23:05:23.916794959 +0000
    @@ -1 +1 @@
    -error: packed-refs: badRefFiletype: not a regular file but a symlink
    +error: unable to open '.git/packed-refs': Inappropriate file type or format
    not ok 12 - the filetype of packed-refs should be checked

FreeBSD has the same issue for EMLINK instead of EFTYPE.

This portability issue was introduced in cfea2f2da8 (packed-backend:
check whether the "packed-refs" is regular file, 2025-02-28)

Signed-off-by: Collin Funk <redacted>
Acked-by: brian m. carlson <redacted>
Acked-by: Patrick Steinhardt <redacted>
Signed-off-by: Junio C Hamano <redacted>
wrapper.c
git clone https://git.99rst.org/PROJECT