From: Colin Ian King <colin.k...@canonical.com> The error returns in idlestat_load fail to close an open file and free allocated memory on the heap. This patch addresses this.
Signed-off-by: Colin Ian King <colin.k...@canonical.com> Signed-off-by: Daniel Lezcano <daniel.lezc...@linaro.org> --- idlestat.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/idlestat.c b/idlestat.c index 739f6dc..0961463 100644 --- a/idlestat.c +++ b/idlestat.c @@ -396,16 +396,24 @@ static struct cpuidle_datas *idlestat_load(const char *path) sscanf(buffer, "cpus=%u", &nrcpus); } - if (!nrcpus) + if (!nrcpus) { + fclose(f); return ptrerror("read error for 'cpus=' in trace file"); + } datas = malloc(sizeof(*datas)); - if (!datas) + if (!datas) { + fclose(f); return ptrerror("malloc datas"); + } datas->cstates = calloc(sizeof(*datas->cstates), nrcpus); - if (!datas->cstates) + if (!datas->cstates) { + free(datas); + fclose(f); return ptrerror("calloc cstate"); + } + /* initialize cstate_max for each cpu */ for (cpu = 0; cpu < nrcpus; cpu++) datas->cstates[cpu].cstate_max = -1; -- 1.7.9.5 _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev