summaryrefslogtreecommitdiffstats
path: root/src/lib/fit_payload.c
diff options
context:
space:
mode:
authorPatrick Rudolph <patrick.rudolph@9elements.com>2018-08-09 09:08:05 +0200
committerPatrick Georgi <pgeorgi@google.com>2018-08-10 15:14:16 +0000
commitdfc30130e94e97d42389e4b7ef7e2227df99cdf7 (patch)
treee52afaff52b862648b9472f7fddeb9acacb6eee0 /src/lib/fit_payload.c
parentfb03dd604300204a35cea2752a5c5a0d17c6d147 (diff)
downloadcoreboot-dfc30130e94e97d42389e4b7ef7e2227df99cdf7.tar.gz
coreboot-dfc30130e94e97d42389e4b7ef7e2227df99cdf7.tar.bz2
coreboot-dfc30130e94e97d42389e4b7ef7e2227df99cdf7.zip
fit: Handle decompression errors properly
Set payload to NULL in case of decompression errors. Fixes the attempt to boot a kernel that couldn't be decompressed. Change-Id: I3a602b0e90923a0b5a3683c4a0adf9e4733d5a2a Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/27970 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/lib/fit_payload.c')
-rw-r--r--src/lib/fit_payload.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/fit_payload.c b/src/lib/fit_payload.c
index ada22e8747db..9dbd8784da2e 100644
--- a/src/lib/fit_payload.c
+++ b/src/lib/fit_payload.c
@@ -163,6 +163,7 @@ void fit_payload(struct prog *payload)
if (config->ramdisk_node &&
extract(&initrd, config->ramdisk_node)) {
printk(BIOS_ERR, "ERROR: Failed to extract initrd\n");
+ prog_set_entry(payload, NULL, NULL);
rdev_munmap(prog_rdev(payload), data);
return;
}
@@ -171,6 +172,7 @@ void fit_payload(struct prog *payload)
if (extract(&kernel, config->kernel_node)) {
printk(BIOS_ERR, "ERROR: Failed to extract kernel\n");
+ prog_set_entry(payload, NULL, NULL);
rdev_munmap(prog_rdev(payload), data);
return;
}