diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2024-05-27 13:39:42 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2024-05-27 14:04:39 -0400 |
commit | 470589cbd9ca3e73d8c01ac3a96cbc065179dcc5 (patch) | |
tree | 71a86e212ce58e3dc9fb5e6c1f25d895ec488983 /src | |
parent | f095481862ccd175d297da67d0e313d135bd75c3 (diff) | |
download | bfs-470589cbd9ca3e73d8c01ac3a96cbc065179dcc5.tar.xz |
bfstd: Treat ELOOP like ENOENT
GNU findutils just made the same change, so looping symlinks will be
considered broken rather than a hard error.
Link: https://savannah.gnu.org/bugs/?51926
Diffstat (limited to 'src')
-rw-r--r-- | src/bfstd.c | 2 | ||||
-rw-r--r-- | src/printf.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/bfstd.c b/src/bfstd.c index 44eda7c..1c5e289 100644 --- a/src/bfstd.c +++ b/src/bfstd.c @@ -44,7 +44,7 @@ bool error_is_like(int error, int category) { switch (category) { case ENOENT: - return error == ENOTDIR; + return error == ENOTDIR || error == ELOOP; case ENOSYS: // https://github.com/opencontainers/runc/issues/2151 diff --git a/src/printf.c b/src/printf.c index be09ebd..f514361 100644 --- a/src/printf.c +++ b/src/printf.c @@ -544,7 +544,7 @@ static int bfs_printf_Y(CFILE *cfile, const struct bfs_fmt *fmt, const struct BF int error = 0; if (type == BFS_ERROR) { - if (errno_is_like(ELOOP)) { + if (errno == ELOOP) { str = "L"; } else if (errno_is_like(ENOENT)) { str = "N"; |