From: Jaroslav Kysela Date: Mon, 31 Aug 2020 12:25:56 +0000 (+0200) Subject: topology: fix sort_config() X-Git-Tag: v1.2.4~22 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=84c6aeef5ca89c0686ae2a9ed90504010f8fe9e6;p=alsa-lib.git topology: fix sort_config() The temporary config array must be initialized for all compound types. Signed-off-by: Jaroslav Kysela --- diff --git a/src/topology/save.c b/src/topology/save.c index 16fd6946..631d84b2 100644 --- a/src/topology/save.c +++ b/src/topology/save.c @@ -143,7 +143,6 @@ static snd_config_t *sort_config(const char *id, snd_config_t *src) int index, array, count; if (snd_config_get_type(src) != SND_CONFIG_TYPE_COMPOUND) { - if (snd_config_copy(&dst, src) >= 0) return dst; return NULL; @@ -155,14 +154,13 @@ static snd_config_t *sort_config(const char *id, snd_config_t *src) if (a == NULL) return NULL; array = snd_config_is_array(src); - if (array <= 0) { - index = 0; - snd_config_for_each(i, next, src) { - snd_config_t *s = snd_config_iterator_entry(i); - a[index++] = s; - } - qsort(a, count, sizeof(a[0]), _compar); + index = 0; + snd_config_for_each(i, next, src) { + snd_config_t *s = snd_config_iterator_entry(i); + a[index++] = s; } + if (array <= 0) + qsort(a, count, sizeof(a[0]), _compar); if (snd_config_make_compound(&dst, id, count == 1)) { free(a); return NULL;