diff options
author | Nelson Benítez León <nbenitezl@gmail.com> | 2023-04-06 18:45:59 -0400 |
---|---|---|
committer | Nelson Benítez León <nbenitezl@gmail.com> | 2023-04-06 20:05:53 -0400 |
commit | ed8148bd076454d1f51adb7158547318195f4e0c (patch) | |
tree | b92e4a731079ee928eb5c410055acbddb2e429a6 /gtk/inspector | |
parent | 9608e4e503df28e31137f4841409876f5aaf1e0d (diff) | |
download | gtk+-ed8148bd076454d1f51adb7158547318195f4e0c.tar.gz |
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
Diffstat (limited to 'gtk/inspector')
-rw-r--r-- | gtk/inspector/actions.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/gtk/inspector/actions.c b/gtk/inspector/actions.c index eeac0a188e..eb979bfd0c 100644 --- a/gtk/inspector/actions.c +++ b/gtk/inspector/actions.c @@ -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) |