summaryrefslogtreecommitdiffstats
path: root/util.c
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2017-08-22 18:34:36 -0400
committerTavian Barnes <tavianator@tavianator.com>2017-08-22 18:37:23 -0400
commitd548b86e120db7e1327eea957a698d4bb874a1fb (patch)
tree874e34926ee12fbbf076a834d6822ab751cf378b /util.c
parent2a561b66f48ab4deafb0a031cad3ad541ea79449 (diff)
downloadbfs-d548b86e120db7e1327eea957a698d4bb874a1fb.tar.xz
Avoid multiple extra stat()s of broken symlinks for -xtype
Diffstat (limited to 'util.c')
-rw-r--r--util.c10
1 files changed, 5 insertions, 5 deletions
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;