diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/libxc/xc_dom_elfloader.c | 8 | ||||
-rw-r--r-- | tools/libxc/xc_hvm_build.c | 5 |
2 files changed, 10 insertions, 3 deletions
diff --git a/tools/libxc/xc_dom_elfloader.c b/tools/libxc/xc_dom_elfloader.c index 4d7b8e0a4d..2e695599b1 100644 --- a/tools/libxc/xc_dom_elfloader.c +++ b/tools/libxc/xc_dom_elfloader.c @@ -310,9 +310,15 @@ static int xc_dom_parse_elf_kernel(struct xc_dom_image *dom) static int xc_dom_load_elf_kernel(struct xc_dom_image *dom) { struct elf_binary *elf = dom->private_loader; + int rc; elf->dest = xc_dom_seg_to_ptr(dom, &dom->kernel_seg); - elf_load_binary(elf); + rc = elf_load_binary(elf); + if ( rc < 0 ) + { + DOMPRINTF("%s: failed to load elf binary", __FUNCTION__); + return rc; + } if ( dom->parms.bsd_symtab ) xc_dom_load_elf_symtab(dom, elf, 1); return 0; diff --git a/tools/libxc/xc_hvm_build.c b/tools/libxc/xc_hvm_build.c index 9831bab192..1fa5658702 100644 --- a/tools/libxc/xc_hvm_build.c +++ b/tools/libxc/xc_hvm_build.c @@ -109,8 +109,9 @@ static int loadelfimage( elf->dest += elf->pstart & (PAGE_SIZE - 1); /* Load the initial elf image. */ - elf_load_binary(elf); - rc = 0; + rc = elf_load_binary(elf); + if ( rc < 0 ) + PERROR("Failed to load elf binary\n"); munmap(elf->dest, pages << PAGE_SHIFT); elf->dest = NULL; |