瀏覽代碼

asoc: wcd9360-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: I07211c4cc06b2c2df21b674e6812c4d5efc45dc4
Signed-off-by: Xiaoyu Ye <[email protected]>
Xiaoyu Ye 6 年之前
父節點
當前提交
e45af077d8
共有 1 個文件被更改,包括 3 次插入1 次删除
  1. 3 1
      asoc/codecs/wcd9360/wcd9360-dsp-cntl.c

+ 3 - 1
asoc/codecs/wcd9360/wcd9360-dsp-cntl.c

@@ -894,10 +894,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;