Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e6f49ea4 authored by Srinivasa Rao Mandadapu's avatar Srinivasa Rao Mandadapu Committed by Greg Kroah-Hartman
Browse files

ASoC: qcom: lpass-platform: Fix memory leak



[ Upstream commit bd6327fda2f3ded85b69b3c3125c99aaa51c7881 ]

lpass_pcm_data is not freed in error paths. Free it in
error paths to avoid memory leak.

Fixes: 022d00ee ("ASoC: lpass-platform: Fix broken pcm data usage")
Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
Signed-off-by: default avatarV Sujith Kumar Reddy <vsujithk@codeaurora.org>
Signed-off-by: default avatarSrinivasa Rao Mandadapu <srivasam@codeaurora.org>
Link: https://lore.kernel.org/r/1605416210-14530-1-git-send-email-srivasam@codeaurora.org


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent c8148a10
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -81,8 +81,10 @@ static int lpass_platform_pcmops_open(struct snd_pcm_substream *substream)
	else
		dma_ch = 0;

	if (dma_ch < 0)
	if (dma_ch < 0) {
		kfree(data);
		return dma_ch;
	}

	drvdata->substream[dma_ch] = substream;

@@ -103,6 +105,7 @@ static int lpass_platform_pcmops_open(struct snd_pcm_substream *substream)
	ret = snd_pcm_hw_constraint_integer(runtime,
			SNDRV_PCM_HW_PARAM_PERIODS);
	if (ret < 0) {
		kfree(data);
		dev_err(soc_runtime->dev, "setting constraints failed: %d\n",
			ret);
		return -EINVAL;