From d08230d867c877695e08e21b55375729866f188f Mon Sep 17 00:00:00 2001 From: Mikhail Efremov Date: Wed, 3 Aug 2016 17:43:41 +0300 Subject: [PATCH] Fix segfault when upowerd is not running Ensure that up_client_new() returned a valid object. Note that it is relies on changes in the upower > 0.99.4. --- xfsettingsd/displays-upower.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/xfsettingsd/displays-upower.c b/xfsettingsd/displays-upower.c index e1fab38..9120d1a 100644 --- a/xfsettingsd/displays-upower.c +++ b/xfsettingsd/displays-upower.c @@ -100,6 +100,13 @@ static void xfce_displays_upower_init (XfceDisplaysUPower *upower) { upower->client = up_client_new (); + if (!UP_IS_CLIENT (upower->client)) + { + upower->handler = 0; + upower->lid_is_closed = 0; + return; + } + upower->lid_is_closed = up_client_get_lid_is_closed (upower->client); #if UP_CHECK_VERSION(0, 99, 0) upower->handler = g_signal_connect (G_OBJECT (upower->client), -- 2.7.4