From ce60828b9e04a614dde7e0af1a9ab94f6f3fcdd1 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Tue, 1 Jun 2021 20:52:44 +0200
Subject: [PATCH] media-keys: Do not access GVariant before error checks
This may trigger asserts and crashes down the line.
---
plugins/media-keys/gsd-media-keys-manager.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
index 1b3ff38..c4aef34 100644
--- a/plugins/media-keys/gsd-media-keys-manager.c
+++ b/plugins/media-keys/gsd-media-keys-manager.c
@@ -442,8 +442,6 @@ grab_accelerators_complete (GObject *object,
GsdMediaKeysManager *manager = user_data;
ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (object), result, &error);
- g_variant_get (ret, "(@au)", &actions);
- g_variant_unref (ret);
if (error) {
retry = g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD);
@@ -454,6 +452,10 @@ grab_accelerators_complete (GObject *object,
g_error_free (error);
} else {
int i;
+
+ g_variant_get (ret, "(@au)", &actions);
+ g_variant_unref (ret);
+
for (i = 0; i < manager->priv->keys->len; i++) {
MediaKey *key;
--
2.31.1