]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lscpu: assume gaps in list of CPUs
authorKarel Zak <kzak@redhat.com>
Tue, 3 Nov 2020 08:44:22 +0000 (09:44 +0100)
committerKarel Zak <kzak@redhat.com>
Fri, 13 Nov 2020 08:19:02 +0000 (09:19 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/lscpu-cpu.c

index f2159bd038918ca11211f439f180909ed543dc6e..70b40c5413197057ef00a505a2a0efbea4f194ae 100644 (file)
@@ -45,16 +45,16 @@ void lscpu_unref_cpu(struct lscpu_cpu *cpu)
  */
 int lscpu_create_cpus(struct lscpu_cxt *cxt, cpu_set_t *cpuset, size_t setsize)
 {
-       size_t n;
+       size_t n, i;
 
        assert(!cxt->cpus);
 
        cxt->npossibles = CPU_COUNT_S(setsize, cpuset);
        cxt->cpus = xcalloc(1, cxt->npossibles * sizeof(struct lscpu_cpu *));
 
-       for (n = 0; n < cxt->npossibles; n++) {
+       for (n = 0, i = 0; n < (size_t) cxt->maxcpus && i < cxt->npossibles; n++) {
                if (CPU_ISSET_S(n, setsize, cpuset))
-                       cxt->cpus[n] = lscpu_new_cpu(n);
+                       cxt->cpus[i++] = lscpu_new_cpu(n);
        }
 
        return 0;