The kallsyms section of the trace file can contain no data, this is valid use case. When such file is read and parsed by read_proc_kallsyms(), the file state should be set to TRACECMD_FILE_KALLSYMS in that case. Renamed a local variable from pevent to tep, to be consistent with the libtraceevent prefix. Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@xxxxxxxxx> --- lib/trace-cmd/trace-input.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/trace-cmd/trace-input.c b/lib/trace-cmd/trace-input.c index 43491c5b..f3677ad3 100644 --- a/lib/trace-cmd/trace-input.c +++ b/lib/trace-cmd/trace-input.c @@ -740,7 +740,7 @@ static int read_event_files(struct tracecmd_input *handle, const char *regex) static int read_proc_kallsyms(struct tracecmd_input *handle) { - struct tep_handle *pevent = handle->pevent; + struct tep_handle *tep = handle->pevent; unsigned int size; char *buf; @@ -749,8 +749,10 @@ static int read_proc_kallsyms(struct tracecmd_input *handle) if (read4(handle, &size) < 0) return -1; - if (!size) + if (!size) { + handle->file_state = TRACECMD_FILE_KALLSYMS; return 0; /* OK? */ + } buf = malloc(size+1); if (!buf) @@ -761,7 +763,7 @@ static int read_proc_kallsyms(struct tracecmd_input *handle) } buf[size] = 0; - tep_parse_kallsyms(pevent, buf); + tep_parse_kallsyms(tep, buf); free(buf); -- 2.31.1