summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2024-05-27 13:39:42 -0400
committerTavian Barnes <tavianator@tavianator.com>2024-05-27 14:04:39 -0400
commit470589cbd9ca3e73d8c01ac3a96cbc065179dcc5 (patch)
tree71a86e212ce58e3dc9fb5e6c1f25d895ec488983 /src
parentf095481862ccd175d297da67d0e313d135bd75c3 (diff)
downloadbfs-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.c2
-rw-r--r--src/printf.c2
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";