summaryrefslogtreecommitdiffstats
path: root/dir.c
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2022-01-18 11:27:54 -0500
committerTavian Barnes <tavianator@tavianator.com>2022-01-18 12:27:29 -0500
commit03563b1407e436b2863509ebf09d412e79cbd1dd (patch)
treed2e5b735c8be3078b7b76c31c9168330a7f2557b /dir.c
parentabbb00766a8d10f63bbafb60bb13eb4672d7f44a (diff)
downloadbfs-03563b1407e436b2863509ebf09d412e79cbd1dd.tar.xz
util: New close() wrappers to check for EBADF and preserve errno
Diffstat (limited to 'dir.c')
-rw-r--r--dir.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/dir.c b/dir.c
index 90c2e3e..024e767 100644
--- a/dir.c
+++ b/dir.c
@@ -138,12 +138,10 @@ struct bfs_dir *bfs_opendir(int at_fd, const char *at_path) {
#else
dir->dir = fdopendir(fd);
if (!dir->dir) {
- int error = errno;
if (at_path) {
- close(fd);
+ close_quietly(fd);
}
free(dir);
- errno = error;
return NULL;
}
@@ -280,7 +278,7 @@ int bfs_readdir(struct bfs_dir *dir, struct bfs_dirent *de) {
int bfs_closedir(struct bfs_dir *dir) {
#if __linux__
- int ret = close(dir->fd);
+ int ret = xclose(dir->fd);
#else
int ret = closedir(dir->dir);
#endif