From 88f270e25902e3bff781380727d30d5602fdec71 Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Fri, 28 Feb 2025 08:10:11 +0100 Subject: [PATCH] StdIOCallback: return 0 on read/write errors That's what the IOCallback abstraction expects. --- src/StdIOCallback.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/StdIOCallback.cpp b/src/StdIOCallback.cpp index 8b0bc340..d2cb6a9f 100644 --- a/src/StdIOCallback.cpp +++ b/src/StdIOCallback.cpp @@ -102,6 +102,8 @@ uint32 StdIOCallback::read(void*Buffer,size_t Size) assert(File!=nullptr); size_t result = fread(Buffer, 1, Size, File); + if (feof(File) || ferror(File)) + return 0; mCurrentPosition += result; return result; } @@ -145,6 +147,8 @@ size_t StdIOCallback::write(const void*Buffer,size_t Size) { assert(File!=nullptr); uint32 Result = fwrite(Buffer,1,Size,File); + if (feof(File) || ferror(File)) + return 0; mCurrentPosition += Result; return Result; }