Jacob Garber has uploaded this change for review.

View Change

mb/sifive/hifive-unleashed: Check for errors in fixup_fdt

It is possible that cbfs_boot_map_with_leak() and malloc() could fail,
so detect those conditions and print error messages if they do.

Change-Id: I34951da0b73028c4c89446cb1779a72422997325
Signed-off-by: Jacob Garber <jgarber1@ualberta.ca>
Found-by: Coverity CID 1399147
---
M src/mainboard/sifive/hifive-unleashed/fixup_fdt.c
1 file changed, 11 insertions(+), 0 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/34/33134/1
diff --git a/src/mainboard/sifive/hifive-unleashed/fixup_fdt.c b/src/mainboard/sifive/hifive-unleashed/fixup_fdt.c
index ea58e02..6c42fc8 100644
--- a/src/mainboard/sifive/hifive-unleashed/fixup_fdt.c
+++ b/src/mainboard/sifive/hifive-unleashed/fixup_fdt.c
@@ -86,6 +86,11 @@
/* load flat dt from cbfs */
fdt_rom = cbfs_boot_map_with_leak("fallback/DTB", CBFS_TYPE_RAW, NULL);

+ if (fdt_rom == NULL) {
+ printk(BIOS_ERR, "Unable to load fallback/DTB from CBFS\n");
+ return;
+ }
+
/* Expand DT into a tree */
tree = fdt_unflatten(fdt_rom);

@@ -95,6 +100,12 @@

/* convert the tree to a flat dt */
void *dt = malloc(dt_flat_size(tree));
+
+ if (dt == NULL) {
+ printk(BIOS_ERR, "Unable to allocate memory for flat device tree\n");
+ return;
+ }
+
dt_flatten(tree, dt);

/* update HLS */

To view, visit change 33134. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I34951da0b73028c4c89446cb1779a72422997325
Gerrit-Change-Number: 33134
Gerrit-PatchSet: 1
Gerrit-Owner: Jacob Garber <jgarber1@ualberta.ca>
Gerrit-MessageType: newchange