vendorcode/amd/agesa/f15tn: Fix out of bounds read on on memory voltage

I think this has a fairly low likelyhood of happening, but if AGESA
can't determine the voltage of the memory, it assignes a value of 255
to the variable that it later uses to read from an 3-value array.  There
is an assert, but that doesn't halt AGESA, so it would use some random
value.  If the voltage can't be determined, fall back to 1.5v as the
default value.

Fixes coverity warning 1294803 - Out-of-bounds read

Change-Id: Ib9e568175edbdf55a7a4c35055da7169ea7f2ede
Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: https://review.coreboot.org/12855
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Martin Roth 2016-01-06 21:18:21 -07:00
parent b95a074586
commit fecc24af04
1 changed files with 2 additions and 0 deletions

View File

@ -286,6 +286,8 @@ MemPGetMaxFreqSupported (
IDS_HDT_CONSOLE (MEM_FLOW, "\n");
}
ASSERT (DDR3Voltage <= VOLT1_25_ENCODED_VAL);
if (DDR3Voltage > VOLT1_25_ENCODED_VAL)
DDR3Voltage = VOLT1_5_ENCODED_VAL; // if unknown, fall back to 1.5v
MaxFreqSupported = SpeedArray[DDR3Voltage];
}