From 62a530513c9fee1509536b19bcb76cd243621f27 Mon Sep 17 00:00:00 2001 From: Luke Drummond Date: Wed, 10 Jun 2020 01:13:21 +0100 Subject: [PATCH] swaynag: sway_abort on failure to properly register In case `wl_display_roundtrip` returns an error after registering for events, print a more user-friendly error message and exit. Previously, if the build did not have assertions enabled, this would likely result in a segfault. With assertions enabled, it's not user friendly to terminate with internal implementation information. --- swaynag/swaynag.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/swaynag/swaynag.c b/swaynag/swaynag.c index 6c326ca8a..d9bec3687 100644 --- a/swaynag/swaynag.c +++ b/swaynag/swaynag.c @@ -445,7 +445,10 @@ void swaynag_setup(struct swaynag *swaynag) { struct wl_registry *registry = wl_display_get_registry(swaynag->display); wl_registry_add_listener(registry, ®istry_listener, swaynag); - wl_display_roundtrip(swaynag->display); + if (wl_display_roundtrip(swaynag->display) < 0) { + sway_abort("failed to register with the wayland display"); + } + assert(swaynag->compositor && swaynag->layer_shell && swaynag->shm); while (swaynag->querying_outputs > 0) {