From 4504dd3599404a916f104e0c715a9bcf3fb0062b Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Wed, 6 Sep 2017 22:42:26 -0400 Subject: util: Factor out checks for nonexistent paths/broken links --- util.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'util.c') diff --git a/util.c b/util.c index 5b2b3a9..bdb3620 100644 --- a/util.c +++ b/util.c @@ -226,10 +226,14 @@ const char *xbasename(const char *path) { return i; } +bool is_nonexistence_error(int error) { + return error == ENOENT || errno == ENOTDIR; +} + int xfstatat(int fd, const char *path, struct stat *buf, int flags) { int ret = fstatat(fd, path, buf, flags); - if (ret != 0 && !(flags & AT_SYMLINK_NOFOLLOW) && (errno == ENOENT || errno == ENOTDIR)) { + if (ret != 0 && !(flags & AT_SYMLINK_NOFOLLOW) && is_nonexistence_error(errno)) { flags |= AT_SYMLINK_NOFOLLOW; ret = fstatat(fd, path, buf, flags); } -- cgit v1.2.3