window.c: Handle losing selection data source
diff --git a/clients/window.c b/clients/window.c
index 2bea5c6..e78864c 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -2218,6 +2218,8 @@
 		input->selection_offer = wl_data_offer_get_user_data(offer);
 		p = wl_array_add(&input->selection_offer->types, sizeof *p);
 		*p = NULL;
+	} else {
+		input->selection_offer = NULL;
 	}
 }
 
@@ -2348,7 +2350,9 @@
 input_receive_selection_data_to_fd(struct input *input,
 				   const char *mime_type, int fd)
 {
-	wl_data_offer_receive(input->selection_offer->offer, mime_type, fd);
+	if (input->selection_offer)
+		wl_data_offer_receive(input->selection_offer->offer,
+				      mime_type, fd);
 
 	return 0;
 }