It is currently possible to leave a monitor flag enabled even after vm_event_cleanup_domain() has been called, potentially leading to a crash in hvm_msr_write_intercept() and hvm_set_crX() (when v->arch.vm_event has become NULL, but the corresponding corresponding v->domain->arch.monitor flag is non-zero). This patch zeroes out arch.monitor in vm_event_cleanup_domain().
Signed-off-by: Razvan Cojocaru <rcojoc...@bitdefender.com> --- xen/arch/x86/vm_event.c | 1 + 1 file changed, 1 insertion(+) diff --git a/xen/arch/x86/vm_event.c b/xen/arch/x86/vm_event.c index 9677ecc..08d678a 100644 --- a/xen/arch/x86/vm_event.c +++ b/xen/arch/x86/vm_event.c @@ -56,6 +56,7 @@ void vm_event_cleanup_domain(struct domain *d) } d->arch.mem_access_emulate_each_rep = 0; + memset(&d->arch.monitor, 0, sizeof(d->arch.monitor)); } void vm_event_toggle_singlestep(struct domain *d, struct vcpu *v) -- 2.7.0 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel