|
@@ -12,7 +12,7 @@ int perf_read_values_init(struct perf_read_values *values)
|
|
|
values->threads_max = 16;
|
|
|
values->pid = malloc(values->threads_max * sizeof(*values->pid));
|
|
|
values->tid = malloc(values->threads_max * sizeof(*values->tid));
|
|
|
- values->value = malloc(values->threads_max * sizeof(*values->value));
|
|
|
+ values->value = zalloc(values->threads_max * sizeof(*values->value));
|
|
|
if (!values->pid || !values->tid || !values->value) {
|
|
|
pr_debug("failed to allocate read_values threads arrays");
|
|
|
goto out_free_pid;
|
|
@@ -99,7 +99,8 @@ static int perf_read_values__findnew_thread(struct perf_read_values *values,
|
|
|
}
|
|
|
|
|
|
i = values->threads;
|
|
|
- values->value[i] = malloc(values->counters_max * sizeof(**values->value));
|
|
|
+
|
|
|
+ values->value[i] = zalloc(values->counters_max * sizeof(**values->value));
|
|
|
if (!values->value[i]) {
|
|
|
pr_debug("failed to allocate read_values counters array");
|
|
|
return -ENOMEM;
|
|
@@ -130,12 +131,16 @@ static int perf_read_values__enlarge_counters(struct perf_read_values *values)
|
|
|
|
|
|
for (i = 0; i < values->threads; i++) {
|
|
|
u64 *value = realloc(values->value[i], counters_max * sizeof(**values->value));
|
|
|
+ int j;
|
|
|
|
|
|
if (!value) {
|
|
|
pr_debug("failed to enlarge read_values ->values array");
|
|
|
goto out_free_name;
|
|
|
}
|
|
|
|
|
|
+ for (j = values->counters_max; j < counters_max; j++)
|
|
|
+ value[j] = 0;
|
|
|
+
|
|
|
values->value[i] = value;
|
|
|
}
|
|
|
|