diff --git a/[refs] b/[refs] index 26ab459b93c0..a06727a9ebc5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 77e57297b4ff3f602ba5105398d342a4b4a54774 +refs/heads/master: cc2d86b04d9ac28a6be6cb05da6ea8f014fd5aa0 diff --git a/trunk/tools/perf/util/evlist.c b/trunk/tools/perf/util/evlist.c index e03e7bc8205e..c12bd476c6f7 100644 --- a/trunk/tools/perf/util/evlist.c +++ b/trunk/tools/perf/util/evlist.c @@ -85,10 +85,19 @@ int perf_evlist__add_default(struct perf_evlist *evlist) struct perf_evsel *evsel = perf_evsel__new(&attr, 0); if (evsel == NULL) - return -ENOMEM; + goto error; + + /* use strdup() because free(evsel) assumes name is allocated */ + evsel->name = strdup("cycles"); + if (!evsel->name) + goto error_free; perf_evlist__add(evlist, evsel); return 0; +error_free: + perf_evsel__delete(evsel); +error: + return -ENOMEM; } void perf_evlist__disable(struct perf_evlist *evlist)