numa: Fix off-by-one error at MAX_CPUMASK_BITS check
Fix the CPU index check to ensure we don't go beyond the size of the node_cpu bitmap. CPU index is always less than MAX_CPUMASK_BITS, as documented at sysemu.h: > The following shall be true for all CPUs: > cpu->cpu_index < max_cpus <= MAX_CPUMASK_BITS Reviewed-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
3e5f6234b4
commit
ed26b92290
4
numa.c
4
numa.c
|
@ -76,9 +76,9 @@ static void numa_node_parse(NumaNodeOptions *node, QemuOpts *opts, Error **errp)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (cpus = node->cpus; cpus; cpus = cpus->next) {
|
for (cpus = node->cpus; cpus; cpus = cpus->next) {
|
||||||
if (cpus->value > MAX_CPUMASK_BITS) {
|
if (cpus->value >= MAX_CPUMASK_BITS) {
|
||||||
error_setg(errp, "CPU number %" PRIu16 " is bigger than %d",
|
error_setg(errp, "CPU number %" PRIu16 " is bigger than %d",
|
||||||
cpus->value, MAX_CPUMASK_BITS);
|
cpus->value, MAX_CPUMASK_BITS - 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
bitmap_set(numa_info[nodenr].node_cpu, cpus->value, 1);
|
bitmap_set(numa_info[nodenr].node_cpu, cpus->value, 1);
|
||||||
|
|
Loading…
Reference in New Issue