From a7e08e893eb796637ca2c53cd32a529f453ace12 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Mon, 14 Nov 2016 22:40:40 -0500 Subject: Check for readdir() errors everywhere. --- bftw.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) (limited to 'bftw.c') diff --git a/bftw.c b/bftw.c index 630c643..e2bfcc6 100644 --- a/bftw.c +++ b/bftw.c @@ -22,6 +22,7 @@ #include "bftw.h" #include "dstring.h" +#include "util.h" #include #include #include @@ -867,19 +868,6 @@ static struct dircache_entry *bftw_add(struct bftw_state *state, const char *nam return entry; } -/** - * readdir() wrapper that makes error handling cleaner. - */ -static int bftw_readdir(DIR *dir, struct dirent **de) { - errno = 0; - *de = readdir(dir); - if (!*de && errno != 0) { - return -1; - } else { - return 0; - } -} - /** * Push a new entry onto the queue. */ @@ -1016,7 +1004,7 @@ int bftw(const char *path, bftw_fn *fn, int nopenfd, enum bftw_flags flags, void while (true) { struct dirent *de; - if (bftw_readdir(dir, &de) != 0) { + if (xreaddir(dir, &de) != 0) { goto dir_error; } if (!de) { -- cgit v1.2.3