From 0cea74888868b24f01bba4b916e754b04041ca98 Mon Sep 17 00:00:00 2001 From: "Wiktor S. Ovalle Correa" Date: Tue, 2 Feb 2021 17:14:34 +0100 Subject: [PATCH] [EGD-5596] Fix fread() handling of EOF iosyscalls' fread() should interpret zero bytes read as EOF. --- board/linux/libiosyscalls/src/syscalls_stdio.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/linux/libiosyscalls/src/syscalls_stdio.cpp b/board/linux/libiosyscalls/src/syscalls_stdio.cpp index f1f61a0ebd2833fff7fb1a275d2b1787436b5a15..5cca1a606710654e810e590e2afad3b2e3dd9962 100644 --- a/board/linux/libiosyscalls/src/syscalls_stdio.cpp +++ b/board/linux/libiosyscalls/src/syscalls_stdio.cpp @@ -454,7 +454,7 @@ extern "C" char *p = reinterpret_cast(__ptr); do { auto res = vfs::invoke_fs(&fs::read, fx->fd, p, __size); - const auto eof = res > 0 && size_t(res) < __size; + const auto eof = res >= 0 && size_t(res) < __size; fx->error = errno; if (res < 0 || eof) break;