From 45e4e9217238fe658b99634d284768439969ad79 Mon Sep 17 00:00:00 2001 From: Milkey Mouse Date: Wed, 20 May 2020 13:57:56 -0700 Subject: swaybar: add NULL check when listing workspaces For some reason my version of sway doesn't show workspace names: $ swaymsg -t get_outputs Output HDMI-A-1 '(null) (null) (null)' (inactive) Output HDMI-A-2 '(null) (null) (null)' (inactive) Which is weird, but it's no reason to crash swaybar. The field is totally missing from the JSON, so it ends up doing strcmp(NULL, name) which is undefined behavior. --- swaybar/ipc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'swaybar') diff --git a/swaybar/ipc.c b/swaybar/ipc.c index f3b7dd3d..6aa604eb 100644 --- a/swaybar/ipc.c +++ b/swaybar/ipc.c @@ -360,7 +360,7 @@ bool ipc_get_workspaces(struct swaybar *bar) { wl_list_for_each(output, &bar->outputs, link) { const char *ws_output = json_object_get_string(out); - if (strcmp(ws_output, output->name) == 0) { + if (ws_output != NULL && strcmp(ws_output, output->name) == 0) { struct swaybar_workspace *ws = calloc(1, sizeof(struct swaybar_workspace)); ws->num = json_object_get_int(num); -- cgit v1.2.3