diff --git a/Kernel/FileSystem/FileDescriptor.cpp b/Kernel/FileSystem/FileDescriptor.cpp index a51e149c5f..e0242af169 100644 --- a/Kernel/FileSystem/FileDescriptor.cpp +++ b/Kernel/FileSystem/FileDescriptor.cpp @@ -142,17 +142,17 @@ off_t FileDescriptor::seek(off_t offset, int whence) break; case SEEK_CUR: newOffset = m_current_offset + offset; - if (newOffset < 0) - return -EINVAL; break; case SEEK_END: - ASSERT(metadata.size); // FIXME: What do I do? newOffset = metadata.size; break; default: return -EINVAL; } + if (newOffset < 0 || newOffset > metadata.size) + return -EINVAL; + m_current_offset = newOffset; return m_current_offset; }