From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gleb Natapov Subject: Re: [PATCH] KVM: nVMX: Trap unconditionally if msr bitmap access fails Date: Sun, 17 Feb 2013 10:56:36 +0200 Message-ID: <20130217085636.GR9817@redhat.com> References: <511D3103.2040005@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Marcelo Tosatti , kvm , "Nadav Har'El" To: Jan Kiszka Return-path: Received: from mx1.redhat.com ([209.132.183.28]:15575 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755254Ab3BQI4m (ORCPT ); Sun, 17 Feb 2013 03:56:42 -0500 Content-Disposition: inline In-Reply-To: <511D3103.2040005@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: On Thu, Feb 14, 2013 at 07:46:27PM +0100, Jan Kiszka wrote: > This avoids basing decisions on uninitialized variables, potentially > leaking kernel data to the L1 guest. > > Signed-off-by: Jan Kiszka Reviewed-by: Gleb Natapov > --- > arch/x86/kvm/vmx.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 2633199..81a25de 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -5991,7 +5991,8 @@ static bool nested_vmx_exit_handled_msr(struct kvm_vcpu *vcpu, > /* Then read the msr_index'th bit from this bitmap: */ > if (msr_index < 1024*8) { > unsigned char b; > - kvm_read_guest(vcpu->kvm, bitmap + msr_index/8, &b, 1); > + if (kvm_read_guest(vcpu->kvm, bitmap + msr_index/8, &b, 1)) > + return 1; > return 1 & (b >> (msr_index & 7)); > } else > return 1; /* let L1 handle the wrong parameter */ > -- > 1.7.3.4 -- Gleb.