conf: fix memory leak in snd_config_substitute() for strings

When destination type is SND_CONFIG_TYPE_STRING, the old string
must be freed.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Jaroslav Kysela 2022-05-13 16:19:48 +02:00
parent 50140120c6
commit 3e5a894378

View file

@ -1741,6 +1741,8 @@ int snd_config_substitute(snd_config_t *dst, snd_config_t *src)
src->u.compound.fields.prev->next = &dst->u.compound.fields;
}
free(dst->id);
if (dst->type == SND_CONFIG_TYPE_STRING)
free(dst->u.string);
dst->id = src->id;
dst->type = src->type;
dst->u = src->u;