From d548b86e120db7e1327eea957a698d4bb874a1fb Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Tue, 22 Aug 2017 18:34:36 -0400 Subject: Avoid multiple extra stat()s of broken symlinks for -xtype --- util.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'util.c') diff --git a/util.c b/util.c index d825554..5b2b3a9 100644 --- a/util.c +++ b/util.c @@ -226,12 +226,12 @@ const char *xbasename(const char *path) { return i; } -int xfstatat(int fd, const char *path, struct stat *buf, int *flags) { - int ret = fstatat(fd, path, buf, *flags); +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)) { - *flags |= AT_SYMLINK_NOFOLLOW; - ret = fstatat(fd, path, buf, *flags); + if (ret != 0 && !(flags & AT_SYMLINK_NOFOLLOW) && (errno == ENOENT || errno == ENOTDIR)) { + flags |= AT_SYMLINK_NOFOLLOW; + ret = fstatat(fd, path, buf, flags); } return ret; -- cgit v1.2.3