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. --- util.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'util.c') diff --git a/util.c b/util.c index e0f6177..aef5fbb 100644 --- a/util.c +++ b/util.c @@ -17,6 +17,16 @@ #include #include +int xreaddir(DIR *dir, struct dirent **de) { + errno = 0; + *de = readdir(dir); + if (!*de && errno != 0) { + return -1; + } else { + return 0; + } +} + bool isopen(int fd) { return fcntl(fd, F_GETFD) >= 0 || errno != EBADF; } -- cgit v1.2.3