From 4e51b93189edfdc1356737b1ac59be596d93b6f8 Mon Sep 17 00:00:00 2001
From: Sivacharan Paka <sipaka@codeaurora.org>
Date: Thu, 2 Mar 2017 12:13:34 +0800
Subject: [PATCH] ASoC: Add backend user count checking

Add backend user count checking to protect the index
boundary.

Bug: 33751424

Change-Id: Ic1b61d1f7130252cc54da0b16553858714988dbd
CRs-Fixed: 2009216
Signed-off-by: Walter Yang <yandongy@codeaurora.org>
---
 sound/soc/soc-compress.c | 5 +++++
 sound/soc/soc-pcm.c      | 4 ++++
 2 files changed, 9 insertions(+)

diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index 026e51b5ed12..bec8016937a2 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -573,6 +573,11 @@ static int soc_compr_set_params_fe(struct snd_compr_stream *cstream,
 				cstream, &async_domain);
 			} else {
 				be_list[j++] = be;
+				if (j == DPCM_MAX_BE_USERS) {
+					dev_dbg(fe->dev,
+						"ASoC: MAX backend users!\n");
+					break;
+				}
 			}
 		}
 		for (i = 0; i < j; i++) {
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 425250cc4a64..712ef982c271 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -1872,6 +1872,10 @@ void dpcm_be_dai_prepare_async(struct snd_soc_pcm_runtime *fe, int stream,
 							    dpcm, domain);
 		} else {
 			dpcm_async[i++] = dpcm;
+			if (i == DPCM_MAX_BE_USERS) {
+				dev_dbg(fe->dev, "ASoC: MAX backend users!\n");
+				break;
+			}
 		}
 	}
 
-- 
GitLab