diff options
| author | Randy Dunlap <randy.dunlap@oracle.com> | 2010-04-08 18:57:36 -0400 |
|---|---|---|
| committer | Steven Rostedt <rostedt@goodmis.org> | 2010-04-09 10:19:05 -0400 |
| commit | b9c2c6fd0103f70cee59eebf503a60e44f992298 (patch) | |
| tree | 7008e3f7a968f2a68c0631add9d4e2869262af13 | |
| parent | da91094fad7ae5c93056d77300221ad913b4891f (diff) | |
kernelshark: stop segfaults
Keep kernelshark from segfaulting when there is no open trace file.
It segfaults in:
Filter->graph events
Filter->graph advanced event
Filter->list CPUs
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
LKML-Reference: <20100408155736.3d12af4f.randy.dunlap@oracle.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
| -rw-r--r-- | kernel-shark.c | 3 | ||||
| -rw-r--r-- | trace-filter.c | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/kernel-shark.c b/kernel-shark.c index 1f1d459..fcb0f54 100644 --- a/kernel-shark.c +++ b/kernel-shark.c | |||
| @@ -309,6 +309,9 @@ cpus_clicked (gpointer data) | |||
| 309 | gboolean all_cpus; | 309 | gboolean all_cpus; |
| 310 | guint64 *cpu_mask; | 310 | guint64 *cpu_mask; |
| 311 | 311 | ||
| 312 | if (!info->handle) | ||
| 313 | return; | ||
| 314 | |||
| 312 | store = TRACE_VIEW_STORE(gtk_tree_view_get_model(trace_tree)); | 315 | store = TRACE_VIEW_STORE(gtk_tree_view_get_model(trace_tree)); |
| 313 | 316 | ||
| 314 | all_cpus = trace_view_store_get_all_cpus(store); | 317 | all_cpus = trace_view_store_get_all_cpus(store); |
diff --git a/trace-filter.c b/trace-filter.c index faf1e89..15d59c0 100644 --- a/trace-filter.c +++ b/trace-filter.c | |||
| @@ -717,6 +717,9 @@ void trace_adv_filter_dialog(struct tracecmd_input *handle, | |||
| 717 | GtkWidget *view; | 717 | GtkWidget *view; |
| 718 | GtkWidget *event_box; | 718 | GtkWidget *event_box; |
| 719 | 719 | ||
| 720 | if (!handle) | ||
| 721 | return; | ||
| 722 | |||
| 720 | helper = g_malloc(sizeof(*helper)); | 723 | helper = g_malloc(sizeof(*helper)); |
| 721 | g_assert(helper); | 724 | g_assert(helper); |
| 722 | 725 | ||
| @@ -1762,6 +1765,9 @@ void trace_filter_event_filter_dialog(struct tracecmd_input *handle, | |||
| 1762 | gchar **systems; | 1765 | gchar **systems; |
| 1763 | gint *event_ids; | 1766 | gint *event_ids; |
| 1764 | 1767 | ||
| 1768 | if (!handle) | ||
| 1769 | return; | ||
| 1770 | |||
| 1765 | trace_filter_convert_filter_to_names(filter, &systems, &event_ids); | 1771 | trace_filter_convert_filter_to_names(filter, &systems, &event_ids); |
| 1766 | 1772 | ||
| 1767 | filter_event_dialog(handle, filter, all_events, systems, | 1773 | filter_event_dialog(handle, filter, all_events, systems, |
