From cf5aaaf1d25429fa6270c7d91a3e072dcf989079 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Tue, 11 Dec 2012 17:35:30 -0800 Subject: cbfstool: Catch failing parse_elf_to_payload() Otherwise cbfstool will segfault if you try to add an x86 payload to an ARM image. Change-Id: Ie468005ce9325a4f17c4f206c59f48e39d9338df Signed-off-by: Stefan Reinauer Reviewed-on: http://review.coreboot.org/2028 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- util/cbfstool/cbfstool.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/util/cbfstool/cbfstool.c b/util/cbfstool/cbfstool.c index 10b29de113..6b520628f1 100644 --- a/util/cbfstool/cbfstool.c +++ b/util/cbfstool/cbfstool.c @@ -106,7 +106,7 @@ static int cbfs_add(void) static int cbfs_add_payload(void) { - uint32_t filesize = 0; + int32_t filesize = 0; void *rom, *filedata, *cbfsfile; unsigned char *payload; @@ -136,6 +136,12 @@ static int cbfs_add_payload(void) } filesize = parse_elf_to_payload(filedata, &payload, rom_algo); + if (filesize <= 0) { + fprintf(stderr, "E: Adding payload '%s' failed.\n", + rom_filename); + free(rom); + return 1; + } cbfsfile = create_cbfs_file(rom_name, payload, &filesize, CBFS_COMPONENT_PAYLOAD, &rom_baseaddress); -- cgit v1.2.3