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:
committed by
Matthias Clasen
parent
2e8a32db26
commit
fa4af02531
@@ -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 **)¶meter, NULL, NULL, NULL);
|
||||
else
|
||||
else if (!GTK_IS_ACTION_MUXER (owner) ||
|
||||
!gtk_action_muxer_query_action (GTK_ACTION_MUXER (owner), name,
|
||||
NULL, (const GVariantType **)¶meter, 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)
|
||||
|
||||
Reference in New Issue
Block a user