From 74cb9eb7e75bceadb0ebd2eee5b26f27934e5750 Mon Sep 17 00:00:00 2001 From: Carl-Daniel Hailfinger Date: Wed, 14 Oct 2009 23:51:05 +0000 Subject: cbfs_and_run_core() did not check the return code of cbfs_load_stage() and jumped to (void*)-1 on error. Die properly instead. I didn't use die() because that caused a linker error. Signed-off-by: Carl-Daniel Hailfinger Acked-by: Myles Watson git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4776 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/arch/i386/lib/cbfs_and_run.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/arch/i386/lib') diff --git a/src/arch/i386/lib/cbfs_and_run.c b/src/arch/i386/lib/cbfs_and_run.c index eaded11223..4e56964393 100644 --- a/src/arch/i386/lib/cbfs_and_run.c +++ b/src/arch/i386/lib/cbfs_and_run.c @@ -11,6 +11,11 @@ void cbfs_and_run_core(char *filename, unsigned ebp) u8 *dst; print_debug("Jumping to image.\r\n"); dst = cbfs_load_stage(filename); + if (dst == (void *) -1) { + /* We should use die() here. */ + print_emerg("Loading stage failed!\n"); + for (;;); + } print_debug("Jumping to image.\r\n"); __asm__ volatile ( -- cgit v1.2.3