From: Peter Meerwald <p.meerwald@xxxxxxxxxxxxxxxxxx> CID 1323588 return value of pa_idxset_iterate() should be checked, rewrite loop to do so could have used PA_IDXSET_FOREACH() as well --- src/modules/module-equalizer-sink.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/modules/module-equalizer-sink.c b/src/modules/module-equalizer-sink.c index 9c25f3f..b3c8cf2 100644 --- a/src/modules/module-equalizer-sink.c +++ b/src/modules/module-equalizer-sink.c @@ -1669,20 +1669,20 @@ void manager_get_revision(DBusConnection *conn, DBusMessage *msg, void *_u) { static void get_sinks(pa_core *u, char ***names, unsigned *n_sinks) { void *iter = NULL; - struct userdata *sink_u = NULL; - uint32_t dummy; + struct userdata *sink_u; pa_idxset *sink_list; + unsigned i = 0; + pa_assert(u); pa_assert(names); pa_assert(n_sinks); pa_assert_se(sink_list = pa_shared_get(u, SINKLIST)); *n_sinks = (unsigned) pa_idxset_size(sink_list); - *names = *n_sinks > 0 ? pa_xnew0(char *,*n_sinks) : NULL; - for(uint32_t i = 0; i < *n_sinks; ++i) { - sink_u = (struct userdata *) pa_idxset_iterate(sink_list, &iter, &dummy); - (*names)[i] = pa_xstrdup(sink_u->dbus_path); - } + *names = *n_sinks > 0 ? pa_xnew0(char *, *n_sinks) : NULL; + + while ((sink_u = pa_idxset_iterate(sink_list, &iter, NULL))) + (*names)[i++] = pa_xstrdup(sink_u->dbus_path); } void manager_get_sinks(DBusConnection *conn, DBusMessage *msg, void *_u) { -- 1.9.1