cbfs_and_run_core() did not check the return code of cbfs_load_stage()
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Wed, 14 Oct 2009 23:51:05 +0000 (23:51 +0000)
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Wed, 14 Oct 2009 23:51:05 +0000 (23:51 +0000)
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 <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Myles Watson <mylesgw@gmail.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4776 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

src/arch/i386/lib/cbfs_and_run.c

index eaded112235d0ee199731bddfee88b63bc039e72..4e56964393848c7797f22c728d11616f5bc284db 100644 (file)
@@ -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 (