# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1243419460 -3600
# Node ID b671d568115f69d2ab223e9b71b6f8241a7dc1f9
# Parent 7dfc0a20fa598287e61b64d93ff6671e2c649e9a
x86/hvm: fix off-by-one errors in vcpuid range checks
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---
xen/arch/x86/hvm/hvm.c | 2 +-
xen/arch/x86/hvm/mtrr.c | 2 +-
xen/arch/x86/hvm/vlapic.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff -r 7dfc0a20fa59 -r b671d568115f xen/arch/x86/hvm/hvm.c
--- a/xen/arch/x86/hvm/hvm.c Wed May 27 11:16:27 2009 +0100
+++ b/xen/arch/x86/hvm/hvm.c Wed May 27 11:17:40 2009 +0100
@@ -503,7 +503,7 @@ static int hvm_load_cpu_ctxt(struct doma
/* Which vcpu is this? */
vcpuid = hvm_load_instance(h);
- if ( vcpuid > MAX_VIRT_CPUS || (v = d->vcpu[vcpuid]) == NULL )
+ if ( vcpuid >= MAX_VIRT_CPUS || (v = d->vcpu[vcpuid]) == NULL )
{
gdprintk(XENLOG_ERR, "HVM restore: domain has no vcpu %u\n", vcpuid);
return -EINVAL;
diff -r 7dfc0a20fa59 -r b671d568115f xen/arch/x86/hvm/mtrr.c
--- a/xen/arch/x86/hvm/mtrr.c Wed May 27 11:16:27 2009 +0100
+++ b/xen/arch/x86/hvm/mtrr.c Wed May 27 11:17:40 2009 +0100
@@ -676,7 +676,7 @@ static int hvm_load_mtrr_msr(struct doma
struct hvm_hw_mtrr hw_mtrr;
vcpuid = hvm_load_instance(h);
- if ( vcpuid > MAX_VIRT_CPUS || (v = d->vcpu[vcpuid]) == NULL )
+ if ( vcpuid >= MAX_VIRT_CPUS || (v = d->vcpu[vcpuid]) == NULL )
{
gdprintk(XENLOG_ERR, "HVM restore: domain has no vcpu %u\n", vcpuid);
return -EINVAL;
diff -r 7dfc0a20fa59 -r b671d568115f xen/arch/x86/hvm/vlapic.c
--- a/xen/arch/x86/hvm/vlapic.c Wed May 27 11:16:27 2009 +0100
+++ b/xen/arch/x86/hvm/vlapic.c Wed May 27 11:17:40 2009 +0100
@@ -913,7 +913,7 @@ static int lapic_load_hidden(struct doma
/* Which vlapic to load? */
vcpuid = hvm_load_instance(h);
- if ( vcpuid > MAX_VIRT_CPUS || (v = d->vcpu[vcpuid]) == NULL )
+ if ( vcpuid >= MAX_VIRT_CPUS || (v = d->vcpu[vcpuid]) == NULL )
{
gdprintk(XENLOG_ERR, "HVM restore: domain has no vlapic %u\n", vcpuid);
return -EINVAL;
@@ -936,7 +936,7 @@ static int lapic_load_regs(struct domain
/* Which vlapic to load? */
vcpuid = hvm_load_instance(h);
- if ( vcpuid > MAX_VIRT_CPUS || (v = d->vcpu[vcpuid]) == NULL )
+ if ( vcpuid >= MAX_VIRT_CPUS || (v = d->vcpu[vcpuid]) == NULL )
{
gdprintk(XENLOG_ERR, "HVM restore: domain has no vlapic %u\n", vcpuid);
return -EINVAL;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|