소스 검색

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 <[email protected]>
Xiaoyu Ye 6 년 전
부모
커밋
6095db3f9e
1개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 1
      asoc/codecs/wcd934x/wcd934x-dsp-cntl.c

+ 3 - 1
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;