Make cpu index check more strict
This commit is contained in:
parent
05c4ed4963
commit
04d984d4fc
@ -97,6 +97,11 @@ load_cpus(struct loom *loom, JSON_Object *meta)
|
|||||||
int index = (int) json_object_get_number(jcpu, "index");
|
int index = (int) json_object_get_number(jcpu, "index");
|
||||||
int phyid = (int) json_object_get_number(jcpu, "phyid");
|
int phyid = (int) json_object_get_number(jcpu, "phyid");
|
||||||
|
|
||||||
|
if (index < 0 || index >= (int) ncpus) {
|
||||||
|
err("cpu index %d out of bounds", index);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
struct cpu *cpu = loom_find_cpu(loom, phyid);
|
struct cpu *cpu = loom_find_cpu(loom, phyid);
|
||||||
|
|
||||||
if (cpu) {
|
if (cpu) {
|
||||||
@ -110,6 +115,14 @@ load_cpus(struct loom *loom, JSON_Object *meta)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If we reach this point, there shouldn't be a CPU with the
|
||||||
|
* same index either, as otherwise the phyid should have matched
|
||||||
|
* before. So it is an error. */
|
||||||
|
if (loom_get_cpu(loom, index) != NULL) {
|
||||||
|
err("cpu index %d redefined with another phyid", index);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
cpu = calloc(1, sizeof(struct cpu));
|
cpu = calloc(1, sizeof(struct cpu));
|
||||||
if (cpu == NULL) {
|
if (cpu == NULL) {
|
||||||
err("calloc failed:");
|
err("calloc failed:");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user