diff options
author | Patrick Rudolph <patrick.rudolph@9elements.com> | 2018-08-09 09:08:05 +0200 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2018-08-10 15:14:16 +0000 |
commit | dfc30130e94e97d42389e4b7ef7e2227df99cdf7 (patch) | |
tree | e52afaff52b862648b9472f7fddeb9acacb6eee0 /src/lib/fit_payload.c | |
parent | fb03dd604300204a35cea2752a5c5a0d17c6d147 (diff) |
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.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/fit_payload.c b/src/lib/fit_payload.c index ada22e8747..9dbd8784da 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; } |