Jacob Garber has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/33459
Change subject: sb/nvidia/ck804: Prevent uninitialized reads ......................................................................
sb/nvidia/ck804: Prevent uninitialized reads
ck804_num counts the number of initialized elements in the busn and io_base arrays, so we can only access the first elements of those if ck804_num is non-zero.
Change-Id: I80b775370ac6485958948f0bff4510755a6cd2b8 Signed-off-by: Jacob Garber jgarber1@ualberta.ca Found-by: Coverity CID 137058{1,3} --- M src/southbridge/nvidia/ck804/early_setup_car.c 1 file changed, 11 insertions(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/59/33459/1
diff --git a/src/southbridge/nvidia/ck804/early_setup_car.c b/src/southbridge/nvidia/ck804/early_setup_car.c index 156c387..03d34a3 100644 --- a/src/southbridge/nvidia/ck804/early_setup_car.c +++ b/src/southbridge/nvidia/ck804/early_setup_car.c @@ -355,11 +355,19 @@ } }
- printk(BIOS_DEBUG, "ck804_early_set_port(%d, %d, %d)\n", ck804_num, busn[0], io_base[0]); + if (ck804_num != 0) { + printk(BIOS_DEBUG, "ck804_early_set_port(%d, %d, %d)\n", + ck804_num, busn[0], io_base[0]); + printk(BIOS_DEBUG, "ck804_early_setup(%d, %d, %d)\n", + ck804_num, busn[0], io_base[0]); + printk(BIOS_DEBUG, "ck804_early_clear_port(%d, %d, %d)\n", + ck804_num, busn[0], io_base[0]); + } else { + printk(BIOS_DEBUG, "No ck804 early setup to do\n"); + } + ck804_early_set_port(ck804_num, busn, io_base); - printk(BIOS_DEBUG, "ck804_early_setup(%d, %d, %d)\n", ck804_num, busn[0], io_base[0]); ck804_early_setup(ck804_num, busn, io_base); - printk(BIOS_DEBUG, "ck804_early_clear_port(%d, %d, %d)\n", ck804_num, busn[0], io_base[0]); ck804_early_clear_port(ck804_num, busn, io_base);
return set_ht_link_ck804(4);