From: Jaroslav Kysela Date: Fri, 9 May 2025 07:55:00 +0000 (+0200) Subject: mixer: bag - fix bag_del_all implementation (missing free) X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=8df60992b7d23da6209e3262f5f65b986d409e4a;p=alsa-lib.git mixer: bag - fix bag_del_all implementation (missing free) The bag1_t structure must be freed, too. Fixes: https://github.com/alsa-project/alsa-lib/issues/453 Signed-off-by: Jaroslav Kysela --- diff --git a/src/mixer/bag.c b/src/mixer/bag.c index 18a8fbe8..8d06073d 100644 --- a/src/mixer/bag.c +++ b/src/mixer/bag.c @@ -68,6 +68,11 @@ int bag_del(bag_t *bag, void *ptr) void bag_del_all(bag_t *bag) { - while (!list_empty(bag)) - list_del(bag->next); + struct list_head *pos, *npos; + + list_for_each_safe(pos, npos, bag) { + bag1_t *b = list_entry(pos, bag1_t, list); + list_del(&b->list); + free(b); + } }