diff options
author | Gianni Tedesco <gianni.tedesco@citrix.com> | 2010-08-09 17:43:18 +0100 |
---|---|---|
committer | Gianni Tedesco <gianni.tedesco@citrix.com> | 2010-08-09 17:43:18 +0100 |
commit | 8493e199f833705eb480e91b2dd4d0328202e525 (patch) | |
tree | 1c2a473bbecf517fa3d32a44bdbfbac1ea2c8579 /tools/libxc/xc_hvm_build.c | |
parent | 6d7a71986d206dcfea48a936b02401097572bf8d (diff) | |
download | xen-8493e199f833705eb480e91b2dd4d0328202e525.tar.gz xen-8493e199f833705eb480e91b2dd4d0328202e525.tar.bz2 xen-8493e199f833705eb480e91b2dd4d0328202e525.zip |
xc: fix segfault in pv domain create if kernel is an invalid image
If libelf calls elf_err() or elf_msg() before elf_set_log() has been
called then it could potentially read an uninitialised log handling
callback function pointer from struct elf_binary. Fix this in libxc by
zeroing the structure before calling elf_init().
Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Diffstat (limited to 'tools/libxc/xc_hvm_build.c')
-rw-r--r-- | tools/libxc/xc_hvm_build.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/libxc/xc_hvm_build.c b/tools/libxc/xc_hvm_build.c index 7bdd50b1f3..03e81a9e1b 100644 --- a/tools/libxc/xc_hvm_build.c +++ b/tools/libxc/xc_hvm_build.c @@ -142,6 +142,7 @@ static int setup_guest(xc_interface *xch, if ( memsize > target ) pod_mode = 1; + memset(&elf, 0, sizeof(elf)); if ( elf_init(&elf, image, image_size) != 0 ) goto error_out; elf_parse_binary(&elf); |