diff options
author | Steven Rostedt (Google) <rostedt@goodmis.org> | 2022-03-16 11:25:12 -0400 |
---|---|---|
committer | Yordan Karadzhov (VMware) <y.karadz@gmail.com> | 2022-03-17 18:31:53 +0200 |
commit | 37dd19f24c693e0c40a8cf133642e387b216540e (patch) | |
tree | b117718c820d4935837a93483246ee702830e3ce | |
parent | 027ccb9b4e2fd5fde2a41a4e5ff1931ddf0df9d5 (diff) | |
download | kernel-shark-37dd19f24c693e0c40a8cf133642e387b216540e.tar.gz |
kernelshark: Release input_mutex on not finding record
The tepdata_get_latency() function could exit without releasing the
stream->input_mutex, which would cause a lockup later on.
Fixes: 836ce858246b7 ("kernel-shark: Add stream interface for trace-cmd data")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
-rw-r--r-- | src/libkshark-tepdata.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libkshark-tepdata.c b/src/libkshark-tepdata.c index e9244b07..08aca098 100644 --- a/src/libkshark-tepdata.c +++ b/src/libkshark-tepdata.c @@ -793,8 +793,10 @@ static char *tepdata_get_latency(struct kshark_data_stream *stream, record = tracecmd_read_at(kshark_get_tep_input(stream), entry->offset, NULL); - if (!record) + if (!record) { + pthread_mutex_unlock(&stream->input_mutex); return NULL; + } trace_seq_reset(&seq); tep_print_event(kshark_get_tep(stream), &seq, record, |