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 <bris...@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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/