From 6095db3f9e688f4f30f533a26b1e3a66dc09576c Mon Sep 17 00:00:00 2001 From: Xiaoyu Ye Date: Tue, 31 Jul 2018 11:53:36 -0700 Subject: [PATCH] ASoC: wcd934x-dsp-cntl: initialize local char array val Due to the local char array that stores the codec dsp control command is not initialized, an invalid command could cause the stack content to be printed out in kernel dmesg. Initialize the array with memset. Change-Id: I739eacb5058275c91bef67505531097cb364b93e Signed-off-by: Xiaoyu Ye --- asoc/codecs/wcd934x/wcd934x-dsp-cntl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/asoc/codecs/wcd934x/wcd934x-dsp-cntl.c b/asoc/codecs/wcd934x/wcd934x-dsp-cntl.c index 662f484028..de4f3997d4 100644 --- a/asoc/codecs/wcd934x/wcd934x-dsp-cntl.c +++ b/asoc/codecs/wcd934x/wcd934x-dsp-cntl.c @@ -1011,10 +1011,12 @@ static ssize_t wcd_miscdev_write(struct file *filep, const char __user *ubuf, { struct wcd_dsp_cntl *cntl = container_of(filep->private_data, struct wcd_dsp_cntl, miscdev); - char val[WCD_MISCDEV_CMD_MAX_LEN]; + char val[WCD_MISCDEV_CMD_MAX_LEN + 1]; bool vote; int ret = 0; + memset(val, 0, WCD_MISCDEV_CMD_MAX_LEN + 1); + if (count == 0 || count > WCD_MISCDEV_CMD_MAX_LEN) { pr_err("%s: Invalid count = %zd\n", __func__, count); ret = -EINVAL;