x86/vLAPIC: don't leak regs page from vlapic_init() upon error
authorJan Beulich <jbeulich@suse.com>
Tue, 20 Oct 2020 12:44:02 +0000 (14:44 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 20 Oct 2020 12:44:02 +0000 (14:44 +0200)
Fixes: 8a981e0bf25e ("Make map_domain_page_global fail")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 8a62dee9ceff3056c7e0bd9632bac39bee2a51b3
master date: 2020-10-09 17:20:11 +0100

xen/arch/x86/hvm/vlapic.c

index 7b5c6330339fd982023c9d7c2cb8cf91d2f158a7..30007a999e9b39ae4e1baf03d0c812b69743acd8 100644 (file)
@@ -1629,6 +1629,7 @@ int vlapic_init(struct vcpu *v)
         vlapic->regs = __map_domain_page_global(vlapic->regs_page);
         if ( vlapic->regs == NULL )
         {
+            free_domheap_page(vlapic->regs_page);
             dprintk(XENLOG_ERR, "map vlapic regs error: %d/%d\n",
                     v->domain->domain_id, v->vcpu_id);
             return -ENOMEM;