From: Paul Eggert Date: Mon, 26 Sep 2022 01:33:49 +0000 (-0700) Subject: fts: fix errno handling if dirfd fails X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=a41b6f260ce0298bca2d5dbf1654f5b781e1c02f;p=gnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index 5363f048ee..3ae7fcb4a1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2022-09-25 Paul Eggert + + 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. + 2022-09-24 Bruno Haible stdalign: Fix compilation error with MSVC in C++ mode. diff --git a/lib/fts.c b/lib/fts.c index db9482712f..76ecdcad18 100644 --- a/lib/fts.c +++ b/lib/fts.c @@ -1292,11 +1292,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; }