nuttx/libs/libc/dirent
yushuailong 7e67d2d906 libs/libc/dirent: preserve errno on readdir() end-of-directory
readdir() returned NULL at end-of-directory without ensuring errno was
clean.  POSIX requires errno to be unchanged at EOF, but the underlying
read() path may leave a stale errno value.  Callers that follow the
POSIX idiom (set errno to 0 before the call, test it after a NULL
return), such as readdir_r() and scandir(), then misread this as a
readdir() failure.

Save errno on entry and restore it on the end-of-directory return so
that EOF no longer reports a spurious error, while genuine errors
(read() returning a negative value) still propagate.

Signed-off-by: yushuailong <yyyusl@qq.com>
2026-06-02 23:34:25 +08:00
..
CMakeLists.txt cmake:refine nuttx cmake build system fix CMake build missing part 2024-10-13 02:25:06 +08:00
lib_alphasort.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_closedir.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_dirfd.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_fdopendir.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_ftw.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_nftw.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_opendir.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_readdir.c libs/libc/dirent: preserve errno on readdir() end-of-directory 2026-06-02 23:34:25 +08:00
lib_readdirr.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_rewinddir.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_scandir.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_seekdir.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_telldir.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
lib_versionsort.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
Make.defs libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00