* [PATCH] ALSA: jack: Fix control leak on jack allocation failure
@ 2026-11-15 10:19 Sreeraj S Kurup
0 siblings, 0 replies; only message in thread
From: Sreeraj S Kurup @ 2026-11-15 10:19 UTC (permalink / raw)
To: perex, tiwai; +Cc: linux-kernel, linux-sound, Sreeraj S Kurup
snd_jack_new() creates an ALSA jack control before allocating the
jack structure.
If the jack structure allocation fails, the function returns
-ENOMEM without removing the previously created control.
Remove the control using snd_ctl_remove() to release the control
and its private data before returning -ENOMEM.
Initialize the control list before removal so that the
private_free callback can safely remove the list entry.
Signed-off-by: Sreeraj S Kurup <sreekuttan2156239@gmail.com>
---
sound/core/jack.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/sound/core/jack.c b/sound/core/jack.c
index af2dc2cfbe19..92febcb42a8d 100644
--- a/sound/core/jack.c
+++ b/sound/core/jack.c
@@ -555,8 +555,14 @@ int snd_jack_new(struct snd_card *card, const char *id, int type,
}
jack = kzalloc_obj(struct snd_jack);
- if (jack == NULL)
+ if (!jack) {
+ if (jack_kctl) {
+ INIT_LIST_HEAD(&jack_kctl->list);
+ snd_ctl_remove(card, jack_kctl->kctl);
+ }
+
return -ENOMEM;
+ }
jack->id = kstrdup(id, GFP_KERNEL);
if (jack->id == NULL) {
--
2.55.0
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-11-15 10:20 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-15 10:19 [PATCH] ALSA: jack: Fix control leak on jack allocation failure Sreeraj S Kurup
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®