From e260c1c90583c2fc3099dda6155ffa484d10ae6e Mon Sep 17 00:00:00 2001 From: Roger Pau Monne Date: Wed, 3 Feb 2016 11:59:57 +0100 Subject: [PATCH] libxc: fix leak in xc_dom_load_hvm_kernel error path MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Error path in xc_dom_load_hvm_kernel needs to use the 'error' label instead of directly returning. This is needed so the entries local variable is freed. Coverity-ID: 1351227 Signed-off-by: Roger Pau Monné Acked-by: Ian Campbell --- tools/libxc/xc_dom_hvmloader.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/libxc/xc_dom_hvmloader.c b/tools/libxc/xc_dom_hvmloader.c index 79a3b991a0..330d5e8c26 100644 --- a/tools/libxc/xc_dom_hvmloader.c +++ b/tools/libxc/xc_dom_hvmloader.c @@ -257,7 +257,7 @@ static elf_errorstatus xc_dom_load_hvm_kernel(struct xc_dom_image *dom) if ( rc < 0 ) { DOMPRINTF("%s: failed to load elf binary", __func__); - return rc; + goto error; } munmap(elf->dest_base, elf->dest_size); @@ -267,14 +267,14 @@ static elf_errorstatus xc_dom_load_hvm_kernel(struct xc_dom_image *dom) if ( rc != 0 ) { DOMPRINTF("%s: insufficient space to load modules.", __func__); - return rc; + goto error; } rc = loadmodules(dom, m_start, m_end, dom->guest_domid); if ( rc != 0 ) { DOMPRINTF("%s: unable to load modules.", __func__); - return rc; + goto error; } dom->parms.phys_entry = elf_uval(elf, elf->ehdr, e_entry); -- 2.39.5