From: Sasha Levin <levinsasha928@gmail.com>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: kvm@vger.kernel.org, Avi Kivity <avi@redhat.com>
Subject: Re: [PATCH 1/2] KVM: Don't fail KVM_GET_SUPPORTED_CPUID if nent is just right
Date: Thu, 24 Nov 2011 12:31:20 +0200 [thread overview]
Message-ID: <1322130680.4248.12.camel@lappy> (raw)
In-Reply-To: <20111124100931.GA16626@amt.cnet>
On Thu, 2011-11-24 at 08:09 -0200, Marcelo Tosatti wrote:
> On Thu, Nov 17, 2011 at 12:18:44PM +0200, Sasha Levin wrote:
> > If we pass just enough entries to KVM_GET_SUPPORTED_CPUID, we would still
> > fail with -E2BIG due to wrong comparisons.
> >
> > Cc: Avi Kivity <avi@redhat.com>
> > Cc: Marcelo Tosatti <mtosatti@redhat.com>
> > Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
> > ---
> > arch/x86/kvm/x86.c | 12 ++++++------
> > 1 files changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> > index 9eff4af..460c49b 100644
> > --- a/arch/x86/kvm/x86.c
> > +++ b/arch/x86/kvm/x86.c
> > @@ -2664,7 +2664,7 @@ static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid,
> > do_cpuid_ent(&cpuid_entries[nent], func, 0,
> > &nent, cpuid->nent);
> > r = -E2BIG;
> > - if (nent >= cpuid->nent)
> > + if (nent > cpuid->nent)
> > goto out_free;
>
> "int nent" variable contains the index into the array.
> "__u32 cpuid->nent", from userspace, contains the number
> of entries in the array.
>
> So the ">=" comparison is necessary to avoid overwriting past the end of
> the array.
Right, only the last comparison should be changed to ">" because in that
case It's ok if the nent (which points to the next entry) equals to
cpuid->nent.
>
> The protocol goes like "try size x, if it fails with -E2BIG, increase x,
> try again". Its awkward.
We can set nent to be the amount of entries required like we do in the
opposite case where we passed too many entries.
--
Sasha.
next prev parent reply other threads:[~2011-11-24 10:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-17 10:18 [PATCH 1/2] KVM: Don't fail KVM_GET_SUPPORTED_CPUID if nent is just right Sasha Levin
2011-11-17 10:18 ` [PATCH 2/2] KVM: Correct documentation of KVM_GET_SUPPORTED_CPUID Sasha Levin
2011-12-04 17:37 ` Sasha Levin
2011-11-24 10:09 ` [PATCH 1/2] KVM: Don't fail KVM_GET_SUPPORTED_CPUID if nent is just right Marcelo Tosatti
2011-11-24 10:31 ` Sasha Levin [this message]
2011-11-24 10:33 ` Avi Kivity
2011-11-24 10:37 ` Sasha Levin
2011-11-24 10:45 ` Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1322130680.4248.12.camel@lappy \
--to=levinsasha928@gmail.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox