diff --git a/reactos/ntoskrnl/cache/section/io.c b/reactos/ntoskrnl/cache/section/io.c index f56b8c7b07d..012d175c76b 100644 --- a/reactos/ntoskrnl/cache/section/io.c +++ b/reactos/ntoskrnl/cache/section/io.c @@ -187,7 +187,9 @@ MiSimpleRead(PFILE_OBJECT FileObject, } DPRINT("Paging IO Done: %08x\n", ReadStatus->Status); - Status = ReadStatus->Status == STATUS_END_OF_FILE ? STATUS_SUCCESS : ReadStatus->Status; + /* When "ReadStatus->Information > 0" is false and "ReadStatus->Status == STATUS_END_OF_FILE" is true + * it means that read pointer is out of file, so we must fail */ + Status = ReadStatus->Status == STATUS_END_OF_FILE && ReadStatus->Information > 0 ? STATUS_SUCCESS : ReadStatus->Status; return Status; }