inspector: fix crash caused by uninitialized GVariant

we were not checking the return gboolean of
gtk_action_muxer_query_action() which was
returning FALSE for the crash case, meaning
it didn't set the passed in GVariant, but
we were still using it as it was non-null.

Fixes #5729
This commit is contained in:
Nelson Benítez León
2023-04-06 18:45:59 -04:00
committed by Matthias Clasen
parent 2e8a32db26
commit fa4af02531

View File

@@ -172,10 +172,9 @@ bind_parameter_cb (GtkSignalListItemFactory *factory,
name = action_holder_get_name (ACTION_HOLDER (item));
if (G_IS_ACTION_GROUP (owner))
parameter = (const char *)g_action_group_get_action_parameter_type (G_ACTION_GROUP (owner), name);
else if (GTK_IS_ACTION_MUXER (owner))
gtk_action_muxer_query_action (GTK_ACTION_MUXER (owner), name,
NULL, (const GVariantType **)&parameter, NULL, NULL, NULL);
else
else if (!GTK_IS_ACTION_MUXER (owner) ||
!gtk_action_muxer_query_action (GTK_ACTION_MUXER (owner), name,
NULL, (const GVariantType **)&parameter, NULL, NULL, NULL))
parameter = "(Unknown)";
gtk_label_set_label (GTK_LABEL (label), parameter);
@@ -212,10 +211,9 @@ bind_state_cb (GtkSignalListItemFactory *factory,
name = action_holder_get_name (ACTION_HOLDER (item));
if (G_IS_ACTION_GROUP (owner))
state = g_action_group_get_action_state (G_ACTION_GROUP (owner), name);
else if (GTK_IS_ACTION_MUXER (owner))
gtk_action_muxer_query_action (GTK_ACTION_MUXER (owner), name,
NULL, NULL, NULL, NULL, &state);
else
else if (!GTK_IS_ACTION_MUXER (owner) ||
!gtk_action_muxer_query_action (GTK_ACTION_MUXER (owner), name,
NULL, NULL, NULL, NULL, &state))
state = NULL;
if (state)