|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V3 2/2] xen: Introduce VM_EVENT_FLAG_SET_REGISTERS
>>> On 28.09.15 at 12:16, <rcojocaru@xxxxxxxxxxxxxxx> wrote:
> +void vm_event_set_registers(struct vcpu *v, vm_event_response_t *rsp)
> +{
> + v->arch.user_regs.eax = rsp->data.regs.x86.rax;
> + v->arch.user_regs.ebx = rsp->data.regs.x86.rbx;
> + v->arch.user_regs.ecx = rsp->data.regs.x86.rcx;
> + v->arch.user_regs.edx = rsp->data.regs.x86.rdx;
> + v->arch.user_regs.esp = rsp->data.regs.x86.rsp;
> + v->arch.user_regs.ebp = rsp->data.regs.x86.rbp;
> + v->arch.user_regs.esi = rsp->data.regs.x86.rsi;
> + v->arch.user_regs.edi = rsp->data.regs.x86.rdi;
> +
> + v->arch.user_regs.r8 = rsp->data.regs.x86.r8;
> + v->arch.user_regs.r9 = rsp->data.regs.x86.r9;
> + v->arch.user_regs.r10 = rsp->data.regs.x86.r10;
> + v->arch.user_regs.r11 = rsp->data.regs.x86.r11;
> + v->arch.user_regs.r12 = rsp->data.regs.x86.r12;
> + v->arch.user_regs.r13 = rsp->data.regs.x86.r13;
> + v->arch.user_regs.r14 = rsp->data.regs.x86.r14;
> + v->arch.user_regs.r15 = rsp->data.regs.x86.r15;
> +
> + v->arch.user_regs.eflags = rsp->data.regs.x86.rflags;
Shouldn't you sanitize the value? I can't immediately see anything
putting Xen at risk (but it also doesn't seem impossible that I'm
overlooking something), but surely putting insane values here
can lead to hard to debug guest crashes.
> + v->arch.user_regs.eip = rsp->data.regs.x86.rip;
Similarly here I wonder whether this shouldn't be at least
range checked.
> --- a/xen/common/vm_event.c
> +++ b/xen/common/vm_event.c
> @@ -417,6 +417,9 @@ void vm_event_resume(struct domain *d, struct
> vm_event_domain *ved)
>
> if ( rsp.flags & VM_EVENT_FLAG_VCPU_PAUSED )
> {
> + if ( rsp.flags & VM_EVENT_FLAG_SET_REGISTERS )
> + vm_event_set_registers(v, &rsp);
> +
> if ( rsp.flags & VM_EVENT_FLAG_TOGGLE_SINGLESTEP )
> vm_event_toggle_singlestep(d, v);
What meaning has setting both flags and EFLAGS.TF in the new
register values?
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |