diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2017-08-22 18:34:36 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2017-08-22 18:37:23 -0400 |
commit | d548b86e120db7e1327eea957a698d4bb874a1fb (patch) | |
tree | 874e34926ee12fbbf076a834d6822ab751cf378b /util.c | |
parent | 2a561b66f48ab4deafb0a031cad3ad541ea79449 (diff) | |
download | bfs-d548b86e120db7e1327eea957a698d4bb874a1fb.tar.xz |
Avoid multiple extra stat()s of broken symlinks for -xtype
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -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; |