]> git.alsa-project.org Git - alsa-lib.git/commitdiff
pcm: route plugin: allocate temporary array on stack only one time
authorJaroslav Kysela <perex@perex.cz>
Wed, 24 Jan 2024 17:20:44 +0000 (18:20 +0100)
committerJaroslav Kysela <perex@perex.cz>
Wed, 24 Jan 2024 17:20:48 +0000 (18:20 +0100)
Fixes: https://github.com/alsa-project/alsa-lib/pull/363
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/pcm/pcm_route.c

index 38057cb231e8f5b97c435f6fc55bc00972bfff55..affb929f286dd7497ac29b01087f89e4255778fe 100644 (file)
@@ -1151,6 +1151,11 @@ static int _snd_pcm_route_load_ttable(snd_config_t *tt, snd_pcm_route_ttable_ent
        snd_config_iterator_t i, inext;
        unsigned int k;
        int err;
+
+       long *scha = alloca(tt_ssize * sizeof(long));
+       if (scha == NULL)
+               return -ENOMEM;
+
        for (k = 0; k < tt_csize * tt_ssize; ++k)
                ttable[k] = 0.0;
        snd_config_for_each(i, inext, tt) {
@@ -1172,7 +1177,6 @@ static int _snd_pcm_route_load_ttable(snd_config_t *tt, snd_pcm_route_ttable_ent
                        snd_config_t *jnode = snd_config_iterator_entry(j);
                        double value;
                        int ss;
-                       long *scha = alloca(tt_ssize * sizeof(long));
                        const char *id;
                        if (snd_config_get_id(jnode, &id) < 0)
                                continue;