diff options
| author | Joel Fernandes <joelagnelf@nvidia.com> | 2026-01-26 15:23:04 -0500 |
|---|---|---|
| committer | Alexandre Courbot <acourbot@nvidia.com> | 2026-02-25 08:16:55 +0900 |
| commit | 35ae4e58a7c0edd7249a0bcd0d2c151afc185bc2 (patch) | |
| tree | 2f9097f054967c42813e5464030145b0f576e9ff /drivers/gpu | |
| parent | 457c70b7dde5c14f940664fdc7f0e1998aff56be (diff) | |
gpu: nova-core: use checked arithmetic in BinFirmware::data
Use checked_add() when computing the firmware data end offset in the
BinFirmware::data() method. The data_offset and data_size fields come
from the BinHdr structure parsed from the firmware file header.
Reviewed-by: Zhi Wang <zhiw@nvidia.com>
Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Link: https://patch.msgid.link/20260126202305.2526618-5-joelagnelf@nvidia.com
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/nova-core/firmware.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/nova-core/firmware.rs b/drivers/gpu/nova-core/firmware.rs index 68779540aa28..4f57a270e142 100644 --- a/drivers/gpu/nova-core/firmware.rs +++ b/drivers/gpu/nova-core/firmware.rs @@ -394,8 +394,9 @@ impl<'a> BinFirmware<'a> { fn data(&self) -> Option<&[u8]> { let fw_start = usize::from_safe_cast(self.hdr.data_offset); let fw_size = usize::from_safe_cast(self.hdr.data_size); + let fw_end = fw_start.checked_add(fw_size)?; - self.fw.get(fw_start..fw_start + fw_size) + self.fw.get(fw_start..fw_end) } } |
