vc/cavium/bdk/libdram: Add array bounds check

Ensure that best_en_idx is within bounds before accessing the _en array.

Change-Id: Ifa6259e28875a8cf8199896bda7982370ccaa277
Signed-off-by: Jacob Garber <jgarber1@ualberta.ca>
Found-by: Coverity CID 1393971
Reviewed-on: https://review.coreboot.org/c/coreboot/+/34593
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Jacob Garber 2019-07-26 15:20:47 -06:00 committed by Patrick Georgi
parent c1e9ba8c3d
commit 9f378d3b03
1 changed files with 5 additions and 0 deletions

View File

@ -1141,6 +1141,11 @@ int initialize_ddr_clock(bdk_node_t node,
override_pll_settings = 1;
}
if (best_en_idx >= ARRAY_SIZE(_en)) {
error_print("ERROR: best_en_idx %u exceeds _en array size\n", best_en_idx);
return -1;
}
if (override_pll_settings) {
best_pll_MHz = ddr_ref_hertz * (best_clkf+1) / (best_clkr+1) / 1000000;
best_calculated_ddr_hertz = ddr_ref_hertz * (best_clkf + 1) / ((best_clkr + 1) * (_en[best_en_idx]));