When snd_pcm_hw_constraint_pow2() fails, dpcm should be freed just like when hpi_instream_open() fails.
Fixes: 719f82d3987aa ("ALSA: Add support of AudioScience ASI boards") Signed-off-by: Dinghao Liu dinghao.liu@zju.edu.cn --- sound/pci/asihpi/asihpi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/pci/asihpi/asihpi.c b/sound/pci/asihpi/asihpi.c index 023c35a2a951..736eceacd3d0 100644 --- a/sound/pci/asihpi/asihpi.c +++ b/sound/pci/asihpi/asihpi.c @@ -1244,8 +1244,10 @@ static int snd_card_asihpi_capture_open(struct snd_pcm_substream *substream) if (card->can_dma) err = snd_pcm_hw_constraint_pow2(runtime, 0, SNDRV_PCM_HW_PARAM_BUFFER_BYTES); - if (err < 0) + if (err < 0) { + kfree(dpcm); return err; + }
snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, card->update_interval_frames);