lib/posix/fs: fix end-of-dir in readdir

POSIX readdir should return NULL if end of dir is reached and
leave errno untouched.

Signed-off-by: Rico Ganahl <rico.ganahl@bytesatwork.ch>
This commit is contained in:
Rico Ganahl 2022-01-03 12:44:16 +01:00 committed by Marti Bolivar
commit 5cf1193902

View file

@ -290,6 +290,11 @@ struct dirent *readdir(DIR *dirp)
return NULL;
}
if (fdirent.name[0] == 0) {
/* assume end-of-dir, leave errno untouched */
return NULL;
}
rc = strlen(fdirent.name);
rc = (rc < MAX_FILE_NAME) ? rc : (MAX_FILE_NAME - 1);
(void)memcpy(pdirent.d_name, fdirent.name, rc);