From fecc24af049bfec00efce49858e228dd9ab2d11c Mon Sep 17 00:00:00 2001 From: Martin Roth Date: Wed, 6 Jan 2016 21:18:21 -0700 Subject: [PATCH] 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 Reviewed-on: https://review.coreboot.org/12855 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- src/vendorcode/amd/agesa/f15tn/Proc/Mem/Ps/mpmaxfreq.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vendorcode/amd/agesa/f15tn/Proc/Mem/Ps/mpmaxfreq.c b/src/vendorcode/amd/agesa/f15tn/Proc/Mem/Ps/mpmaxfreq.c index a9fc1dca4c..76d7e518e0 100644 --- a/src/vendorcode/amd/agesa/f15tn/Proc/Mem/Ps/mpmaxfreq.c +++ b/src/vendorcode/amd/agesa/f15tn/Proc/Mem/Ps/mpmaxfreq.c @@ -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]; }