perf test: Fix memory leaks on event-times error paths
authorIan Rogers <irogers@google.com>
Tue, 1 Oct 2024 05:23:25 +0000 (22:23 -0700)
committerNamhyung Kim <namhyung@kernel.org>
Wed, 2 Oct 2024 21:58:03 +0000 (14:58 -0700)
These error paths occur without sufficient permissions. Fix the memory
leaks to make leak sanitizer happier.

Signed-off-by: Ian Rogers <irogers@google.com>
Link: https://lore.kernel.org/r/20241001052327.7052-3-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/tests/event-times.c

index e155f0e0e04d55532b91b653c7922e8f0b3b7b79..deefe5003bfc293037162926261099fc46c73117 100644 (file)
@@ -126,6 +126,7 @@ static int attach__cpu_disabled(struct evlist *evlist)
        evsel->core.attr.disabled = 1;
 
        err = evsel__open_per_cpu(evsel, cpus, -1);
+       perf_cpu_map__put(cpus);
        if (err) {
                if (err == -EACCES)
                        return TEST_SKIP;
@@ -134,7 +135,6 @@ static int attach__cpu_disabled(struct evlist *evlist)
                return err;
        }
 
-       perf_cpu_map__put(cpus);
        return evsel__enable(evsel);
 }
 
@@ -153,10 +153,10 @@ static int attach__cpu_enabled(struct evlist *evlist)
        }
 
        err = evsel__open_per_cpu(evsel, cpus, -1);
+       perf_cpu_map__put(cpus);
        if (err == -EACCES)
                return TEST_SKIP;
 
-       perf_cpu_map__put(cpus);
        return err ? TEST_FAIL : TEST_OK;
 }
 
@@ -188,6 +188,7 @@ static int test_times(int (attach)(struct evlist *),
        err = attach(evlist);
        if (err == TEST_SKIP) {
                pr_debug("  SKIP  : not enough rights\n");
+               evlist__delete(evlist);
                return err;
        }