From 470589cbd9ca3e73d8c01ac3a96cbc065179dcc5 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Mon, 27 May 2024 13:39:42 -0400 Subject: 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 --- src/bfstd.c | 2 +- src/printf.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') 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"; -- cgit v1.2.3