Message ID | 20200914115129.10352-1-joro@8bytes.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [-tip] KVM: SVM: nested: Initialize on-stack pointers in svm_set_nested_state() | expand |
Joerg Roedel <joro@8bytes.org> writes: > From: Joerg Roedel <jroedel@suse.de> > > The save and ctl pointers need to be initialized to NULL because there > is a way through the function in which there is no memory allocated > for the pointers but where they are freed in the end. > > This involves the 'goto out_set_gif' before the memory for the > pointers is allocated. > > Reported-by: Dan Carpenter <dan.carpenter@oracle.com> > Fixes: 6ccbd29ade0d ("KVM: SVM: nested: Don't allocate VMCB structures on stack") > Signed-off-by: Joerg Roedel <jroedel@suse.de> > --- > arch/x86/kvm/svm/nested.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c > index 598a769f1961..72a3d6f87107 100644 > --- a/arch/x86/kvm/svm/nested.c > +++ b/arch/x86/kvm/svm/nested.c > @@ -1062,8 +1062,8 @@ static int svm_set_nested_state(struct kvm_vcpu *vcpu, > struct vmcb *hsave = svm->nested.hsave; > struct vmcb __user *user_vmcb = (struct vmcb __user *) > &user_kvm_nested_state->data.svm[0]; > - struct vmcb_control_area *ctl; > - struct vmcb_save_area *save; > + struct vmcb_control_area *ctl = NULL; > + struct vmcb_save_area *save = NULL; > int ret; > u32 cr0; Hi Joerg, this was previously reported by Colin: https://lore.kernel.org/kvm/20200911110730.24238-1-colin.king@canonical.com/ the fix itself looks good, however, I had an alternative suggestion on how to fix this: https://lore.kernel.org/kvm/87o8mclei1.fsf@vitty.brq.redhat.com/
Hi Vitaly, On Mon, Sep 14, 2020 at 02:04:27PM +0200, Vitaly Kuznetsov wrote: > this was previously reported by Colin: > https://lore.kernel.org/kvm/20200911110730.24238-1-colin.king@canonical.com/ > > the fix itself looks good, however, I had an alternative suggestion on how > to fix this: > https://lore.kernel.org/kvm/87o8mclei1.fsf@vitty.brq.redhat.com/ This looks good to me, mind sending your diff as a patch with correct Fixes tag? Thanks, Joerg
Joerg Roedel <jroedel@suse.de> writes: > Hi Vitaly, > > On Mon, Sep 14, 2020 at 02:04:27PM +0200, Vitaly Kuznetsov wrote: >> this was previously reported by Colin: >> https://lore.kernel.org/kvm/20200911110730.24238-1-colin.king@canonical.com/ >> >> the fix itself looks good, however, I had an alternative suggestion on how >> to fix this: >> https://lore.kernel.org/kvm/87o8mclei1.fsf@vitty.brq.redhat.com/ > > This looks good to me, mind sending your diff as a patch with correct > Fixes tag? > Sure, I was under the impression your "KVM: SVM: nested: Don't allocate VMCB structures on stack" is not commited yet and it can be fixed but I now see that it made it to 'tip' tree. Will send the patch out shortly.
diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c index 598a769f1961..72a3d6f87107 100644 --- a/arch/x86/kvm/svm/nested.c +++ b/arch/x86/kvm/svm/nested.c @@ -1062,8 +1062,8 @@ static int svm_set_nested_state(struct kvm_vcpu *vcpu, struct vmcb *hsave = svm->nested.hsave; struct vmcb __user *user_vmcb = (struct vmcb __user *) &user_kvm_nested_state->data.svm[0]; - struct vmcb_control_area *ctl; - struct vmcb_save_area *save; + struct vmcb_control_area *ctl = NULL; + struct vmcb_save_area *save = NULL; int ret; u32 cr0;