diff --git a/Userland/Libraries/LibC/stdio.cpp b/Userland/Libraries/LibC/stdio.cpp index f847e10b4b..5a58bb89bb 100644 --- a/Userland/Libraries/LibC/stdio.cpp +++ b/Userland/Libraries/LibC/stdio.cpp @@ -777,6 +777,8 @@ size_t fread(void* ptr, size_t size, size_t nmemb, FILE* stream) VERIFY(!Checked::multiplication_would_overflow(size, nmemb)); size_t nread = stream->read(reinterpret_cast(ptr), size * nmemb); + if (!nread) + return 0; return nread / size; } @@ -786,6 +788,8 @@ size_t fwrite(const void* ptr, size_t size, size_t nmemb, FILE* stream) VERIFY(!Checked::multiplication_would_overflow(size, nmemb)); size_t nwritten = stream->write(reinterpret_cast(ptr), size * nmemb); + if (!nwritten) + return 0; return nwritten / size; }