Messages in this thread Patch in this message | | | From | Daniel Bristot de Oliveira <> | Subject | [PATCH] trace-cmd: record crashes if -f is used before -e event. | Date | Mon, 20 Jul 2015 14:51:00 -0300 |
| |
The trace-cmd record command is crashing if a -f filter is used before a -e event.
The usage a -f before a -e is a command line error, and trace-cmd record detects this error by checking if the last_event pointer is NULL.
However, the last_event is not initialized as NULL and this command line error is not detected. Then, the last_event is used to save the filter options and this causes a segmentation fault because last_event was not initialized yet.
This problem is fixed by initializing last_event as NULL.
How-to reproduce: # trace-cmd record -f foo Segmentation fault
Expected output: # trace-cmd record -f foo filter must come after event
Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com> --- trace-record.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/trace-record.c b/trace-record.c index 3e5def2..45826b6 100644 --- a/trace-record.c +++ b/trace-record.c @@ -2686,7 +2686,7 @@ void trace_record (int argc, char **argv) const char *output = NULL; const char *option; struct event_list *event; - struct event_list *last_event; + struct event_list *last_event = NULL; struct tracecmd_event_list *list; struct buffer_instance *instance = &top_instance; enum trace_type type; -- 2.1.0
| |