From 11b6242ba9a0e4b680bce82243ed1bc94b1987c4 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Thu, 20 Apr 2017 14:31:36 -0500 Subject: clients: Don't crash when compositor doesn't support drag and drop display_create_data_source() can return NULL when there's no data device manager present. Instead of carrying on blindly, test its return value. Signed-off-by: Derek Foreman Reviewed-by: Daniel Stone --- clients/editor.c | 3 +++ clients/terminal.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/clients/editor.c b/clients/editor.c index 78d10d2c..8f9eb632 100644 --- a/clients/editor.c +++ b/clients/editor.c @@ -639,6 +639,9 @@ editor_copy_cut(struct editor *editor, struct input *input, bool cut) editor->selection = display_create_data_source(editor->display); + if (!editor->selection) + return; + wl_data_source_offer(editor->selection, "text/plain;charset=utf-8"); wl_data_source_add_listener(editor->selection, diff --git a/clients/terminal.c b/clients/terminal.c index 274ced09..16a44954 100644 --- a/clients/terminal.c +++ b/clients/terminal.c @@ -2264,6 +2264,9 @@ terminal_copy(struct terminal *terminal, struct input *input) { terminal->selection = display_create_data_source(terminal->display); + if (!terminal->selection) + return; + wl_data_source_offer(terminal->selection, "text/plain;charset=utf-8"); wl_data_source_add_listener(terminal->selection, -- cgit v1.2.3