diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2022-09-25 18:33:49 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2022-09-25 18:35:56 -0700 |
commit | 37f96b7066116661ea4b9e82ed04e767eedc0d1d (patch) | |
tree | 84b62596091f066619f7c89c904f32809bec4807 /lib | |
parent | 9187f1c193767b7a09a2d9ef8e72f6f0dabd3250 (diff) | |
download | gnulib-37f96b7066116661ea4b9e82ed04e767eedc0d1d.tar.gz |
fts: fix errno handling if dirfd fails
* lib/fts.c (fts_build): Use proper errno if dirfd failed.
Although I don’t know of any platform where dirfd can fail here,
we might as well get it right.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/fts.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -1290,11 +1290,12 @@ fts_build (register FTS *sp, int type) dir_fd = dirfd (dp); if (dir_fd < 0) { + int dirfd_errno = errno; closedir_and_clear (cur->fts_dirp); if (type == BREAD) { cur->fts_info = FTS_DNR; - cur->fts_errno = errno; + cur->fts_errno = dirfd_errno; } return NULL; } |