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

Commit c5598a86 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "asoc: lsm: free confidence_levels memory to avoid memory leakage"

parents b30560f2 d3f2c2b5
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -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);
		}

		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);

		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: