|
@@ -85,10 +85,19 @@ int perf_evlist__add_default(struct perf_evlist *evlist)
|
|
struct perf_evsel *evsel = perf_evsel__new(&attr, 0);
|
|
struct perf_evsel *evsel = perf_evsel__new(&attr, 0);
|
|
|
|
|
|
if (evsel == NULL)
|
|
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);
|
|
perf_evlist__add(evlist, evsel);
|
|
return 0;
|
|
return 0;
|
|
|
|
+error_free:
|
|
|
|
+ perf_evsel__delete(evsel);
|
|
|
|
+error:
|
|
|
|
+ return -ENOMEM;
|
|
}
|
|
}
|
|
|
|
|
|
void perf_evlist__disable(struct perf_evlist *evlist)
|
|
void perf_evlist__disable(struct perf_evlist *evlist)
|