From d080f58299ebed9300ca6f79d30c955d3e928421 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Sun, 23 Sep 2018 17:02:21 +0300 Subject: [PATCH] i3-nagbar & i3-config-wizard: check sncontext != NULL From https://github.com/freedesktop/startup-notification/blob/07237ff25d6171e1b548118442ddba4259a53ba5/libsn/sn-common.c#L87-L171 it appears that SnDisplay can't be NULL, so I skipped the check. Fixes #3419 --- i3-config-wizard/main.c | 12 ++++++++---- i3-nagbar/main.c | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/i3-config-wizard/main.c b/i3-config-wizard/main.c index 013d1053..0c8c705a 100644 --- a/i3-config-wizard/main.c +++ b/i3-config-wizard/main.c @@ -853,6 +853,7 @@ int main(int argc, char *argv[]) { /* Init startup notification. */ SnDisplay *sndisplay = sn_xcb_display_new(conn, NULL, NULL); SnLauncheeContext *sncontext = sn_launchee_context_new_from_environment(sndisplay, screen); + sn_display_unref(sndisplay); root_screen = xcb_aux_get_screen(conn, screen); root = root_screen->root; @@ -886,7 +887,9 @@ int main(int argc, char *argv[]) { 0, /* back pixel: black */ XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_BUTTON_PRESS}); - sn_launchee_context_setup_window(sncontext, win); + if (sncontext) { + sn_launchee_context_setup_window(sncontext, win); + } /* Map the window (make it visible) */ xcb_map_window(conn, win); @@ -949,9 +952,10 @@ int main(int argc, char *argv[]) { } /* Startup complete. */ - sn_launchee_context_complete(sncontext); - sn_launchee_context_unref(sncontext); - sn_display_unref(sndisplay); + if (sncontext) { + sn_launchee_context_complete(sncontext); + sn_launchee_context_unref(sncontext); + } xcb_flush(conn); diff --git a/i3-nagbar/main.c b/i3-nagbar/main.c index 1d1fcc51..1d600c02 100644 --- a/i3-nagbar/main.c +++ b/i3-nagbar/main.c @@ -421,6 +421,7 @@ int main(int argc, char *argv[]) { /* Init startup notification. */ SnDisplay *sndisplay = sn_xcb_display_new(conn, NULL, NULL); SnLauncheeContext *sncontext = sn_launchee_context_new_from_environment(sndisplay, screens); + sn_display_unref(sndisplay); root_screen = xcb_aux_get_screen(conn, screens); root = root_screen->root; @@ -491,7 +492,9 @@ int main(int argc, char *argv[]) { XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_BUTTON_RELEASE, cursor}); - sn_launchee_context_setup_window(sncontext, win); + if (sncontext) { + sn_launchee_context_setup_window(sncontext, win); + } /* Map the window (make it visible) */ xcb_map_window(conn, win); @@ -553,9 +556,10 @@ int main(int argc, char *argv[]) { draw_util_surface_init(conn, &bar, win, get_visualtype(root_screen), win_pos.width, win_pos.height); /* Startup complete. */ - sn_launchee_context_complete(sncontext); - sn_launchee_context_unref(sncontext); - sn_display_unref(sndisplay); + if (sncontext) { + sn_launchee_context_complete(sncontext); + sn_launchee_context_unref(sncontext); + } /* Grab the keyboard to get all input */ xcb_flush(conn); -- 2.39.2