diff --git a/asoc/codecs/wcd9360/wcd9360-dsp-cntl.c b/asoc/codecs/wcd9360/wcd9360-dsp-cntl.c index 863024a98b64..37536f86c54c 100644 --- a/asoc/codecs/wcd9360/wcd9360-dsp-cntl.c +++ b/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;