diff --git a/Kernel/FileSystem/SysFS/Subsystems/Bus/PCI/DeviceExpansionROM.cpp b/Kernel/FileSystem/SysFS/Subsystems/Bus/PCI/DeviceExpansionROM.cpp index 12a40d7fe0..ebc7b846d3 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Bus/PCI/DeviceExpansionROM.cpp +++ b/Kernel/FileSystem/SysFS/Subsystems/Bus/PCI/DeviceExpansionROM.cpp @@ -39,12 +39,9 @@ ErrorOr PCIDeviceExpansionROMSysFSComponent::read_bytes(off_t offset, si if (unsigned_offset >= m_option_rom_size) return 0; - auto blob = TRY(try_to_generate_buffer(unsigned_offset, count)); - if (static_cast(offset) >= blob->size()) - return 0; - - ssize_t nread = min(static_cast(blob->size() - offset), static_cast(count)); - TRY(buffer.write(blob->data() + offset, nread)); + ssize_t nread = min(static_cast(m_option_rom_size - offset), static_cast(count)); + auto blob = TRY(try_to_generate_buffer(unsigned_offset, nread)); + TRY(buffer.write(blob->bytes())); return nread; }