asoc: lsm: free confidence_levels memory to avoid memory leakage

prtd->lsm_client->confidence_levels is allocated in
msm_lsm_get_conf_levels and not freed in msm_lsm_set_conf.
Make this change to free this memory.

Change-Id: I617703b36c13e065fdf995e89121c442b32b08f3
Signed-off-by: Meng Wang <mengw@codeaurora.org>
This commit is contained in:
Meng Wang
2019-12-18 14:00:33 +08:00
committed by Gerrit - the friendly Code Review server
parent 669089fdbd
commit d3f2c2b5a4

View File

@@ -659,6 +659,10 @@ static int msm_lsm_set_conf(struct snd_pcm_substream *substream,
"%s: Failed to set min_conf_levels, err = %d\n",
__func__, rc);
if (prtd->lsm_client->confidence_levels) {
kfree(prtd->lsm_client->confidence_levels);
prtd->lsm_client->confidence_levels = NULL;
}
return rc;
}
@@ -1055,7 +1059,6 @@ static int msm_lsm_ioctl_shared(struct snd_pcm_substream *substream,
struct snd_pcm_runtime *runtime;
struct lsm_priv *prtd;
struct snd_lsm_detection_params det_params;
uint8_t *confidence_level = NULL;
uint32_t max_detection_stages_supported = LSM_MAX_STAGES_PER_SESSION;
if (!substream || !substream->private_data) {
@@ -1210,12 +1213,12 @@ static int msm_lsm_ioctl_shared(struct snd_pcm_substream *substream,
dev_err(rtd->dev,
"%s: Register snd Model v2 failed =%d\n",
__func__, rc);
kfree(confidence_level);
q6lsm_snd_model_buf_free(prtd->lsm_client, &p_info);
}
kfree(prtd->lsm_client->confidence_levels);
prtd->lsm_client->confidence_levels = NULL;
if (prtd->lsm_client->confidence_levels) {
kfree(prtd->lsm_client->confidence_levels);
prtd->lsm_client->confidence_levels = NULL;
}
break;
}
case SNDRV_LSM_SET_PARAMS:
@@ -1247,10 +1250,10 @@ static int msm_lsm_ioctl_shared(struct snd_pcm_substream *substream,
dev_err(rtd->dev,
"%s: Failed to set params, err = %d\n",
__func__, rc);
kfree(prtd->lsm_client->confidence_levels);
prtd->lsm_client->confidence_levels = NULL;
if (prtd->lsm_client->confidence_levels) {
kfree(prtd->lsm_client->confidence_levels);
prtd->lsm_client->confidence_levels = NULL;
}
break;
case SNDRV_LSM_DEREG_SND_MODEL: