linux/sound
Takashi Iwai 66f2d19f81 ALSA: pcm: Fix memory leak at closing a stream without hw_free
ALSA PCM core recently introduced a new managed PCM buffer allocation
mode that does allocate / free automatically at hw_params and
hw_free.  However, it overlooked the code path directly calling
hw_free PCM ops at releasing the PCM substream, and it may result in a
memory leak as spotted by syzkaller when no buffer preallocation is
used (e.g. vmalloc buffer).

This patch papers over it with a slight refactoring.  The hw_free ops
call and relevant tasks are unified in a new helper function, and call
it from both places.

Fixes: 0dba808eae ("ALSA: pcm: Introduce managed buffer allocation mode")
Reported-by: syzbot+30edd0f34bfcdc548ac4@syzkaller.appspotmail.com
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20200129195907.12197-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2020-01-29 21:01:19 +01:00
..
ac97 ALSA: ac97: Constify snd_ac97_bus_ops definitions 2020-01-03 09:24:11 +01:00
aoa ALSA: aoa: More constifications 2020-01-05 16:14:27 +01:00
arm ALSA: arm: More constification 2020-01-05 16:15:07 +01:00
atmel ALSA: atmel: Constify snd_ac97_bus_ops definitions 2020-01-03 09:24:12 +01:00
core ALSA: pcm: Fix memory leak at closing a stream without hw_free 2020-01-29 21:01:19 +01:00
drivers ALSA: serial-u16550: More constification 2020-01-05 16:15:08 +01:00
firewire Merge branch 'for-linus' into for-next 2020-01-20 11:44:51 +01:00
hda ALSA: hda: Reset stream if DMA RUN bit not cleared 2020-01-28 10:29:41 +01:00
i2c ALSA: i2c: Constify snd_kcontrol_new items 2020-01-03 09:24:24 +01:00
isa ALSA: sc6000: More constification 2020-01-05 16:15:05 +01:00
mips ALSA: mips: Constify snd_device_ops definitions 2020-01-03 09:24:02 +01:00
oss compat_ioctl: remove translation for sound ioctls 2019-10-23 17:23:45 +02:00
parisc ALSA: parisc: Constify snd_kcontrol_new items 2020-01-03 09:24:35 +01:00
pci Merge branch 'for-linus' into for-next 2020-01-26 09:31:41 +01:00
pcmcia ALSA: pdaudiocf: More constification 2020-01-05 16:15:13 +01:00
ppc ALSA: ppc: More constifications 2020-01-05 16:14:43 +01:00
sh ALSA: sh: Fix compile warning wrt const 2020-01-05 16:15:14 +01:00
soc ASoC: Updates for v5.6 2020-01-27 17:45:44 +01:00
sparc ALSA: sparc: More constifications 2020-01-05 16:14:56 +01:00
spi ALSA: spi: More constification 2020-01-05 16:15:13 +01:00
synth ALSA: emux: More constifications 2020-01-05 16:14:46 +01:00
usb Merge branch 'for-linus' into for-next 2020-01-26 09:31:41 +01:00
x86 ALSA: x86: Drop superfluous ioctl PCM ops 2019-12-11 07:25:34 +01:00
xen ALSA: xen: Drop superfluous ioctl PCM ops 2019-12-11 07:25:35 +01:00
ac97_bus.c ALSA: ac97: Treat snd_ac97_bus_ops as const 2020-01-03 09:24:08 +01:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
last.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
Makefile
sound_core.c sound: fix a memory leak bug 2019-08-08 08:18:32 +02:00