mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-10-01 01:35:54 -04:00
163 lines
4.1 KiB
Diff
163 lines
4.1 KiB
Diff
From 5b3fcb8c073ea1762744eeb74d2e8301a8728d7b Mon Sep 17 00:00:00 2001
|
|
From: Xiaojun Sang <xsang@codeaurora.org>
|
|
Date: Fri, 24 Feb 2017 16:13:20 +0800
|
|
Subject: [PATCH] BACKPORT: ASoC: msm: qdsp6: set pointer to NULL after free.
|
|
|
|
Pointer after kfree is not sanitized.
|
|
Set pointer to NULL.
|
|
|
|
CRs-Fixed: 2008031
|
|
Change-Id: I765a59a2059ba7a0fc16f70a1a8b92f57297a907
|
|
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
|
|
Signed-off-by: Bikshapathi Kothapeta <bkotha@codeaurora.org>
|
|
---
|
|
|
|
diff --git a/sound/soc/msm/msm-lowlatency-pcm-q6.c b/sound/soc/msm/msm-lowlatency-pcm-q6.c
|
|
index ad7ae1f..0f323c4 100644
|
|
--- a/sound/soc/msm/msm-lowlatency-pcm-q6.c
|
|
+++ b/sound/soc/msm/msm-lowlatency-pcm-q6.c
|
|
@@ -504,6 +504,7 @@
|
|
SNDRV_PCM_STREAM_PLAYBACK);
|
|
q6asm_audio_client_free(prtd->audio_client);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
return 0;
|
|
}
|
|
|
|
@@ -596,6 +597,7 @@
|
|
SNDRV_PCM_STREAM_CAPTURE);
|
|
q6asm_audio_client_free(prtd->audio_client);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
|
|
return 0;
|
|
}
|
|
diff --git a/sound/soc/msm/msm-multi-ch-pcm-q6.c b/sound/soc/msm/msm-multi-ch-pcm-q6.c
|
|
index 999683e..59072ec 100644
|
|
--- a/sound/soc/msm/msm-multi-ch-pcm-q6.c
|
|
+++ b/sound/soc/msm/msm-multi-ch-pcm-q6.c
|
|
@@ -576,6 +576,7 @@
|
|
multi_ch_pcm_audio.prtd = NULL;
|
|
q6asm_audio_client_free(prtd->audio_client);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
return 0;
|
|
}
|
|
|
|
@@ -668,6 +669,7 @@
|
|
SNDRV_PCM_STREAM_CAPTURE);
|
|
q6asm_audio_client_free(prtd->audio_client);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
|
|
return 0;
|
|
}
|
|
diff --git a/sound/soc/msm/msm-pcm-afe.c b/sound/soc/msm/msm-pcm-afe.c
|
|
index 66043d1..a93d58b 100644
|
|
--- a/sound/soc/msm/msm-pcm-afe.c
|
|
+++ b/sound/soc/msm/msm-pcm-afe.c
|
|
@@ -326,6 +326,7 @@
|
|
pr_debug("%s: Could not allocate memory\n", __func__);
|
|
mutex_unlock(&prtd->lock);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
return -ENOMEM;
|
|
}
|
|
hrtimer_init(&prtd->hrt, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
|
@@ -409,6 +410,7 @@
|
|
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/msm-pcm-q6.c b/sound/soc/msm/msm-pcm-q6.c
|
|
index 16e1415..da696d0 100644
|
|
--- a/sound/soc/msm/msm-pcm-q6.c
|
|
+++ b/sound/soc/msm/msm-pcm-q6.c
|
|
@@ -509,6 +509,7 @@
|
|
SNDRV_PCM_STREAM_PLAYBACK);
|
|
q6asm_audio_client_free(prtd->audio_client);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
return 0;
|
|
}
|
|
|
|
@@ -604,6 +605,7 @@
|
|
msm_pcm_routing_dereg_phy_stream(soc_prtd->dai_link->be_id,
|
|
SNDRV_PCM_STREAM_CAPTURE);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
|
|
return 0;
|
|
}
|
|
diff --git a/sound/soc/msm/msm7k-pcm.c b/sound/soc/msm/msm7k-pcm.c
|
|
index a9193a2..50983a0 100644
|
|
--- a/sound/soc/msm/msm7k-pcm.c
|
|
+++ b/sound/soc/msm/msm7k-pcm.c
|
|
@@ -393,6 +393,7 @@
|
|
msm_adsp_put(prtd->audrec);
|
|
msm_adsp_put(prtd->audpre);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
|
|
return 0;
|
|
}
|
|
@@ -449,6 +450,7 @@
|
|
|
|
out:
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
return ret;
|
|
}
|
|
|
|
@@ -492,6 +494,7 @@
|
|
alsa_audio_disable(prtd);
|
|
audmgr_close(&prtd->audmgr);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
|
|
return 0;
|
|
}
|
|
diff --git a/sound/soc/msm/msm7kv2-pcm.c b/sound/soc/msm/msm7kv2-pcm.c
|
|
index 2b7a438..252e1f0 100644
|
|
--- a/sound/soc/msm/msm7kv2-pcm.c
|
|
+++ b/sound/soc/msm/msm7kv2-pcm.c
|
|
@@ -520,6 +520,7 @@
|
|
alsa_audio_disable(prtd);
|
|
auddev_unregister_evt_listner(AUDDEV_CLNT_DEC, prtd->session_id);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
|
|
return 0;
|
|
}
|
|
@@ -574,6 +575,7 @@
|
|
audpreproc_aenc_free(prtd->session_id);
|
|
msm_adsp_put(prtd->audrec);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
return 0;
|
|
}
|
|
|
|
diff --git a/sound/soc/msm/msm8x60-pcm.c b/sound/soc/msm/msm8x60-pcm.c
|
|
index 7993435..bfbea5c 100644
|
|
--- a/sound/soc/msm/msm8x60-pcm.c
|
|
+++ b/sound/soc/msm/msm8x60-pcm.c
|
|
@@ -534,6 +534,7 @@
|
|
msm_clear_session_id(prtd->session_id);
|
|
q6asm_audio_client_free(prtd->audio_client);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
|
|
return 0;
|
|
}
|
|
@@ -627,6 +628,7 @@
|
|
msm_clear_session_id(prtd->session_id);
|
|
q6asm_audio_client_free(prtd->audio_client);
|
|
kfree(prtd);
|
|
+ runtime->private_data = NULL;
|
|
|
|
return 0;
|
|
}
|