mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
drm/i915/bios: Add some size checks to SPI VBT read
Unify the SPI vs. PCI ROM VBT read codepaths a bit by pulling some size overflow checks from the PCI side into the SPI side. v2: s/drm_dbg()/drm_dbg_kms()/ Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240923152453.11230-3-ville.syrjala@linux.intel.com
This commit is contained in:
parent
8014307257
commit
1533b4057f
|
|
@ -3088,11 +3088,22 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display,
|
|||
if (count >= oprom_size)
|
||||
goto err_not_found;
|
||||
|
||||
if (sizeof(struct vbt_header) > oprom_size - count) {
|
||||
drm_dbg_kms(display->drm, "VBT header incomplete\n");
|
||||
goto err_not_found;
|
||||
}
|
||||
|
||||
/* Get VBT size and allocate space for the VBT */
|
||||
vbt_size = intel_spi_read(&i915->uncore,
|
||||
found + offsetof(struct vbt_header, vbt_size));
|
||||
vbt_size &= 0xffff;
|
||||
|
||||
if (vbt_size > oprom_size - count) {
|
||||
drm_dbg_kms(display->drm,
|
||||
"VBT incomplete (vbt_size overflows)\n");
|
||||
goto err_not_found;
|
||||
}
|
||||
|
||||
vbt = kzalloc(round_up(vbt_size, 4), GFP_KERNEL);
|
||||
if (!vbt)
|
||||
goto err_not_found;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user