summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2019-03-07 08:41:22 +0300
committerBen Hutchings <ben@decadent.org.uk>2019-07-09 22:04:14 +0100
commitc6811c231798d516cab653b34a1d44d7491edf27 (patch)
treeec0eb58c97098ab02d26f6b21b154cf6e564063c
parentc70d1929aa130f2a9fa00dd2ca6ac532bcb599e9 (diff)
downloadlinux-stable-c6811c231798d516cab653b34a1d44d7491edf27.tar.gz
linux-stable-c6811c231798d516cab653b34a1d44d7491edf27.tar.bz2
linux-stable-c6811c231798d516cab653b34a1d44d7491edf27.zip
xen, cpu_hotplug: Prevent an out of bounds access
commit 201676095dda7e5b31a5e1d116d10fc22985075e upstream. The "cpu" variable comes from the sscanf() so Smatch marks it as untrusted data. We can't pass a higher value than "nr_cpu_ids" to cpu_possible() or it results in an out of bounds access. Fixes: d68d82afd4c8 ("xen: implement CPU hotplugging") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Reviewed-by: Juergen Gross <jgross@suse.com> Signed-off-by: Juergen Gross <jgross@suse.com> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--drivers/xen/cpu_hotplug.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/xen/cpu_hotplug.c b/drivers/xen/cpu_hotplug.c
index cc6513a176b0..3a69af6f0718 100644
--- a/drivers/xen/cpu_hotplug.c
+++ b/drivers/xen/cpu_hotplug.c
@@ -47,7 +47,7 @@ static int vcpu_online(unsigned int cpu)
}
static void vcpu_hotplug(unsigned int cpu)
{
- if (!cpu_possible(cpu))
+ if (cpu >= nr_cpu_ids || !cpu_possible(cpu))
return;
switch (vcpu_online(cpu)) {