check the upper and lower limits of first record offset
Signed-off-by: Gangliang Xie <[email protected]>
---
drivers/gpu/drm/amd/ras/rascore/ras_eeprom.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/gpu/drm/amd/ras/rascore/ras_eeprom.c
b/drivers/gpu/drm/amd/ras/rascore/ras_eeprom.c
index 65c1812a10fb..34b798f45af2 100644
--- a/drivers/gpu/drm/amd/ras/rascore/ras_eeprom.c
+++ b/drivers/gpu/drm/amd/ras/rascore/ras_eeprom.c
@@ -1163,6 +1163,13 @@ static int __check_ras_table_status(struct
ras_core_context *ras_core)
}
control->ras_fri = RAS_OFFSET_TO_INDEX(control, hdr->first_rec_offset);
+ if (hdr->first_rec_offset < control->ras_record_offset ||
+ control->ras_fri >= control->ras_max_record_count) {
+ RAS_DEV_ERR(ras_core->dev,
+ "RAS header invalid, ras_fri: %u,
first_rec_offset:0x%x",
+ control->ras_fri, hdr->first_rec_offset);
+ return -EINVAL;
+ }
return 0;
}
--
2.34.1