summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Berg <bberg@redhat.com>2018-09-24 10:55:35 +0200
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2018-09-25 02:46:54 +0000
commit75556d7c5af3cdff5e527409cce05e9903181fe7 (patch)
tree15ba7a8336e6236fde41c5618c579d1efe3201ea
parent30e58787b20590483533d3dc984034a216d9dd73 (diff)
downloadgnome-control-center-75556d7c5af3cdff5e527409cce05e9903181fe7.tar.gz
power: Handle cancelled kbd brightness proxy creation
The code must not access the passed panel if the operation to create the keyboard proxy has been cancelled. This fixes a possible crash when switching away from the power panel.
-rw-r--r--panels/power/cc-power-panel.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/panels/power/cc-power-panel.c b/panels/power/cc-power-panel.c
index 16dd63c9b..0020e40cf 100644
--- a/panels/power/cc-power-panel.c
+++ b/panels/power/cc-power-panel.c
@@ -1116,7 +1116,7 @@ on_kbd_property_change (GDBusProxy *proxy,
static void
got_kbd_proxy_cb (GObject *source_object, GAsyncResult *res, gpointer user_data)
{
- CcPowerPanel *self = CC_POWER_PANEL (user_data);
+ CcPowerPanel *self;
g_autoptr(GError) error = NULL;
GDBusProxy *kbd_proxy;
@@ -1128,6 +1128,7 @@ got_kbd_proxy_cb (GObject *source_object, GAsyncResult *res, gpointer user_data)
return;
}
+ self = CC_POWER_PANEL (user_data);
self->kbd_proxy = kbd_proxy;
/* we want to change the bar if the user presses brightness buttons */