diff --git a/src/os/solaris/solaris_sigar.c b/src/os/solaris/solaris_sigar.c index 731c7a4d..5eb3dcd4 100644 --- a/src/os/solaris/solaris_sigar.c +++ b/src/os/solaris/solaris_sigar.c @@ -453,12 +453,12 @@ int sigar_cpu_list_get(sigar_t *sigar, sigar_cpu_list_t *cpulist) /* merge times of logical processors */ ent = sigar_cache_get(chips, chip_id); if (ent->value) { - cpu = &cpulist->data[(int)ent->value]; + cpu = &cpulist->data[(int)ent->value-1]; } else { SIGAR_CPU_LIST_GROW(cpulist); - ent->value = (void *)(int)cpulist->number; cpu = &cpulist->data[cpulist->number++]; + ent->value = (void *)(int)cpulist->number; SIGAR_ZERO(cpu); if (is_debug) {