Kane Chen has uploaded this change for review. ( https://review.coreboot.org/25425
Change subject: soc/intel/skylake: ME status value is over status array boundary ......................................................................
soc/intel/skylake: ME status value is over status array boundary
me_progress_rom_values array provides detailed information maps to ME HFSTS2 register value. There is a chance that ME status value might be over the size of me_progress_rom_values. This commit adds a check before access the array.
BUG=b:77247550
Change-Id: I5de569c62b94b0595d3d3ea254f50e312e8c11a4 Signed-off-by: Kane Chen kane.chen@intel.com --- M src/soc/intel/skylake/me.c 1 file changed, 8 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/25/25425/1
diff --git a/src/soc/intel/skylake/me.c b/src/soc/intel/skylake/me.c index 9a721bc..a23172e 100644 --- a/src/soc/intel/skylake/me.c +++ b/src/soc/intel/skylake/me.c @@ -346,8 +346,14 @@ printk(BIOS_DEBUG, "ME: Progress Phase State : "); switch (hfs2.fields.progress_code) { case ME_HFS2_PHASE_ROM: /* ROM Phase */ - printk(BIOS_DEBUG, "%s", - me_progress_rom_values[hfs2.fields.current_state]); + if (hfs2.fields.current_state + < ARRAY_SIZE(me_progress_rom_values) + && me_progress_rom_values[hfs2.fields.current_state]) + printk(BIOS_DEBUG, "%s", + me_progress_rom_values[ + hfs2.fields.current_state]); + else + printk(BIOS_DEBUG, "0x%02x", hfs2.fields.current_state); break;
case ME_HFS2_PHASE_UKERNEL: /* uKernel Phase */