OSDN Git Service

conf: fix snd_config_merge() - double free in overwrite mode
authorJaroslav Kysela <perex@perex.cz>
Wed, 12 May 2021 08:07:12 +0000 (10:07 +0200)
committerJaroslav Kysela <perex@perex.cz>
Wed, 12 May 2021 10:08:49 +0000 (12:08 +0200)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/conf.c

index 12aad1a..1ddf7e6 100644 (file)
@@ -2194,6 +2194,7 @@ int snd_config_merge(snd_config_t *dst, snd_config_t *src, int override)
                        snd_config_t *dn = snd_config_iterator_entry(di);
                        if (strcmp(sn->id, dn->id) == 0) {
                                if (override) {
+                                       snd_config_remove(sn);
                                        err = snd_config_substitute(dn, sn);
                                        if (err < 0)
                                                return err;