diff options
Diffstat (limited to 'tools/perf/util/header.c')
| -rw-r--r-- | tools/perf/util/header.c | 15 | 
1 files changed, 9 insertions, 6 deletions
| diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index f4bfd79ef6a..326068a593a 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -1,5 +1,3 @@ -#define _FILE_OFFSET_BITS 64 -  #include "util.h"  #include <sys/types.h>  #include <byteswap.h> @@ -1672,8 +1670,8 @@ static int process_tracing_data(struct perf_file_section *section __maybe_unused  				struct perf_header *ph __maybe_unused,  				int fd, void *data)  { -	trace_report(fd, data, false); -	return 0; +	ssize_t ret = trace_report(fd, data, false); +	return ret < 0 ? -1 : 0;  }  static int process_build_id(struct perf_file_section *section, @@ -2752,6 +2750,11 @@ static int perf_evsel__prepare_tracepoint_event(struct perf_evsel *evsel,  	if (evsel->tp_format)  		return 0; +	if (pevent == NULL) { +		pr_debug("broken or missing trace data\n"); +		return -1; +	} +  	event = pevent_find_event(pevent, evsel->attr.config);  	if (event == NULL)  		return -1; @@ -2789,7 +2792,7 @@ int perf_session__read_header(struct perf_session *session, int fd)  	u64			f_id;  	int nr_attrs, nr_ids, i, j; -	session->evlist = perf_evlist__new(NULL, NULL); +	session->evlist = perf_evlist__new();  	if (session->evlist == NULL)  		return -ENOMEM; @@ -2940,7 +2943,7 @@ int perf_event__process_attr(union perf_event *event,  	struct perf_evlist *evlist = *pevlist;  	if (evlist == NULL) { -		*pevlist = evlist = perf_evlist__new(NULL, NULL); +		*pevlist = evlist = perf_evlist__new();  		if (evlist == NULL)  			return -ENOMEM;  	} |