소스 검색

Kernel: Don't update fd offset on read/write error

If something goes wrong with a read or write operation, we don't want
to add the error number to the fd's offset. :^)
Andreas Kling 5 년 전
부모
커밋
e8fee92357
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      Kernel/FileSystem/FileDescription.cpp

+ 2 - 2
Kernel/FileSystem/FileDescription.cpp

@@ -106,7 +106,7 @@ off_t FileDescription::seek(off_t offset, int whence)
 ssize_t FileDescription::read(u8* buffer, ssize_t count)
 {
     int nread = m_file->read(*this, buffer, count);
-    if (m_file->is_seekable())
+    if (nread > 0 && m_file->is_seekable())
         m_current_offset += nread;
     return nread;
 }
@@ -114,7 +114,7 @@ ssize_t FileDescription::read(u8* buffer, ssize_t count)
 ssize_t FileDescription::write(const u8* data, ssize_t size)
 {
     int nwritten = m_file->write(*this, data, size);
-    if (m_file->is_seekable())
+    if (nwritten > 0 && m_file->is_seekable())
         m_current_offset += nwritten;
     return nwritten;
 }