From 4a14138230884083da616d7ddcc156dba5ff27de Mon Sep 17 00:00:00 2001 From: Liav A Date: Sat, 18 Feb 2023 16:48:45 +0200 Subject: [PATCH] Kernel/FileSystem: Fix check of read offset for the RAMFSInode code The check of ensuring we are not trying to read beyond the end of the inode data buffer is already there, it's just that we need to disallow further reading if the read offset equals to the inode data size. --- Kernel/FileSystem/RAMFS/Inode.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kernel/FileSystem/RAMFS/Inode.cpp b/Kernel/FileSystem/RAMFS/Inode.cpp index 56f33b5b61..d2368d0b22 100644 --- a/Kernel/FileSystem/RAMFS/Inode.cpp +++ b/Kernel/FileSystem/RAMFS/Inode.cpp @@ -127,7 +127,7 @@ ErrorOr RAMFSInode::read_bytes_from_content_space(size_t offset, size_t { VERIFY(m_inode_lock.is_locked()); VERIFY(m_metadata.size >= 0); - if (static_cast(m_metadata.size) < offset) + if (offset >= static_cast(m_metadata.size)) return 0; auto mapping_region = TRY(MM.allocate_kernel_region(DataBlock::block_size, "RAMFSInode Mapping Region"sv, Memory::Region::Access::Read, AllocationStrategy::Reserve)); return const_cast(*this).do_io_on_content_space(*mapping_region, offset, io_size, buffer, false);