From 89dcd640030592d5aa4728812f61590805edc556 Mon Sep 17 00:00:00 2001 From: Julian Bouzas Date: Wed, 14 Sep 2022 12:11:58 -0400 Subject: [PATCH] settings: make sure WpSpaJson is valid after doing wp_iterator_next() --- lib/wp/settings.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/wp/settings.c b/lib/wp/settings.c index c97a5bad..e0ee4f25 100644 --- a/lib/wp/settings.c +++ b/lib/wp/settings.c @@ -449,7 +449,8 @@ parse_actions (const gchar *actions) g_autofree gchar *value = NULL; g_value_unset (&item); - wp_iterator_next (iter, &item); + if (!wp_iterator_next (iter, &item)) + break; p = g_value_get_boxed (&item); value = wp_spa_json_parse_string (p); @@ -508,7 +509,8 @@ parse_matches (const gchar *match) WpConstraintVerb iverb = WP_CONSTRAINT_VERB_EQUALS; g_value_unset (&o_item); - wp_iterator_next (o_iter, &o_item); + if (!wp_iterator_next (o_iter, &o_item)) + break; p = g_value_get_boxed (&o_item); ivalue = value = wp_spa_json_parse_string (p); @@ -588,10 +590,11 @@ is_rule (WpSpaJson *json) g_autoptr (WpIterator) iter = wp_spa_json_new_iterator (json); g_auto (GValue) item = G_VALUE_INIT; - wp_iterator_next (iter, &item); - WpSpaJson *o = g_value_get_boxed (&item); - if (o && wp_spa_json_is_object (o)) - return TRUE; + if (wp_iterator_next (iter, &item)) { + WpSpaJson *o = g_value_get_boxed (&item); + if (o && wp_spa_json_is_object (o)) + return TRUE; + } } return FALSE; }