mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-12-30 01:46:30 -05:00
125 lines
4.5 KiB
Diff
125 lines
4.5 KiB
Diff
|
From 30baaec8afb05abf9f794c631ad944838d498ab8 Mon Sep 17 00:00:00 2001
|
||
|
From: Xiaojun Sang <xsang@codeaurora.org>
|
||
|
Date: Fri, 24 Feb 2017 16:13:20 +0800
|
||
|
Subject: ASoC: msm: qdsp6v2: set pointer to NULL after free
|
||
|
|
||
|
Pointer after kfree is not sanitized.
|
||
|
Set pointer to NULL.
|
||
|
|
||
|
CRs-Fixed: 2008031
|
||
|
Change-Id: Ia59a57fcd142a6ed18d168992b8da4019314afa4
|
||
|
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
|
||
|
---
|
||
|
sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c | 2 ++
|
||
|
sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c | 3 ++-
|
||
|
sound/soc/msm/qdsp6v2/msm-pcm-lpa-v2.c | 3 ++-
|
||
|
sound/soc/msm/qdsp6v2/msm-pcm-q6-noirq.c | 4 +++-
|
||
|
sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c | 5 ++++-
|
||
|
5 files changed, 13 insertions(+), 4 deletions(-)
|
||
|
|
||
|
diff --git a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
|
||
|
index c49a4de..90741ce 100644
|
||
|
--- a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
|
||
|
+++ b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
|
||
|
@@ -1599,6 +1599,7 @@ static int msm_compr_playback_free(struct snd_compr_stream *cstream)
|
||
|
kfree(pdata->dec_params[soc_prtd->dai_link->be_id]);
|
||
|
pdata->dec_params[soc_prtd->dai_link->be_id] = NULL;
|
||
|
kfree(prtd);
|
||
|
+ runtime->private_data = NULL;
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
@@ -1658,6 +1659,7 @@ static int msm_compr_capture_free(struct snd_compr_stream *cstream)
|
||
|
q6asm_audio_client_free(ac);
|
||
|
|
||
|
kfree(prtd);
|
||
|
+ runtime->private_data = NULL;
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c b/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c
|
||
|
index d65108e..b1a1ea5 100644
|
||
|
--- a/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c
|
||
|
+++ b/sound/soc/msm/qdsp6v2/msm-pcm-afe-v2.c
|
||
|
@@ -1,4 +1,4 @@
|
||
|
-/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
|
||
|
+/* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 and
|
||
|
@@ -684,6 +684,7 @@ done:
|
||
|
mutex_unlock(&prtd->lock);
|
||
|
prtd->prepared--;
|
||
|
kfree(prtd);
|
||
|
+ runtime->private_data = NULL;
|
||
|
return 0;
|
||
|
}
|
||
|
static int msm_afe_prepare(struct snd_pcm_substream *substream)
|
||
|
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-lpa-v2.c b/sound/soc/msm/qdsp6v2/msm-pcm-lpa-v2.c
|
||
|
index 65c0e51..a7619fd 100644
|
||
|
--- a/sound/soc/msm/qdsp6v2/msm-pcm-lpa-v2.c
|
||
|
+++ b/sound/soc/msm/qdsp6v2/msm-pcm-lpa-v2.c
|
||
|
@@ -1,4 +1,4 @@
|
||
|
-/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
|
||
|
+/* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 and
|
||
|
@@ -478,6 +478,7 @@ static int msm_pcm_playback_close(struct snd_pcm_substream *substream)
|
||
|
|
||
|
pr_debug("%s\n", __func__);
|
||
|
kfree(prtd);
|
||
|
+ runtime->private_data = NULL;
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-q6-noirq.c b/sound/soc/msm/qdsp6v2/msm-pcm-q6-noirq.c
|
||
|
index 0612318..289049c 100644
|
||
|
--- a/sound/soc/msm/qdsp6v2/msm-pcm-q6-noirq.c
|
||
|
+++ b/sound/soc/msm/qdsp6v2/msm-pcm-q6-noirq.c
|
||
|
@@ -1,4 +1,4 @@
|
||
|
-/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||
|
+/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 and
|
||
|
@@ -544,6 +544,8 @@ static int msm_pcm_close(struct snd_pcm_substream *substream)
|
||
|
SNDRV_PCM_STREAM_PLAYBACK :
|
||
|
SNDRV_PCM_STREAM_CAPTURE);
|
||
|
kfree(prtd);
|
||
|
+ runtime->private_data = NULL;
|
||
|
+
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c b/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c
|
||
|
index 07f82952..b9a1d57 100644
|
||
|
--- a/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c
|
||
|
+++ b/sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c
|
||
|
@@ -1,4 +1,4 @@
|
||
|
-/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
|
||
|
+/* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 and
|
||
|
@@ -755,6 +755,8 @@ static int msm_pcm_playback_close(struct snd_pcm_substream *substream)
|
||
|
msm_pcm_routing_dereg_phy_stream(soc_prtd->dai_link->be_id,
|
||
|
SNDRV_PCM_STREAM_PLAYBACK);
|
||
|
kfree(prtd);
|
||
|
+ runtime->private_data = NULL;
|
||
|
+
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
@@ -860,6 +862,7 @@ static int msm_pcm_capture_close(struct snd_pcm_substream *substream)
|
||
|
msm_pcm_routing_dereg_phy_stream(soc_prtd->dai_link->be_id,
|
||
|
SNDRV_PCM_STREAM_CAPTURE);
|
||
|
kfree(prtd);
|
||
|
+ runtime->private_data = NULL;
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
--
|
||
|
cgit v1.1
|
||
|
|