Переглянути джерело

Merge "asoc: codecs: wcd938x: limit buffer copy to max buffer size"

qctecmdr 5 роки тому
батько
коміт
ae5dca4830
1 змінених файлів з 2 додано та 2 видалено
  1. 2 2
      asoc/codecs/wcd938x/wcd938x-slave.c

+ 2 - 2
asoc/codecs/wcd938x/wcd938x-slave.c

@@ -112,9 +112,9 @@ static ssize_t wcd938x_swrslave_reg_show(struct swr_device *pdev,
 		if (!is_swr_slv_reg_readable(i))
 			continue;
 		swr_read(pdev, pdev->dev_num, i, &reg_val, 1);
-		len = snprintf(tmp_buf, 25, "0x%.3x: 0x%.2x\n", i,
+		len = snprintf(tmp_buf, sizeof(tmp_buf), "0x%.3x: 0x%.2x\n", i,
 			       (reg_val & 0xFF));
-		if ((total + len) >= count - 1)
+		if (((total + len) >= count - 1) || (len < 0))
 			break;
 		if (copy_to_user((ubuf + total), tmp_buf, len)) {
 			pr_err("%s: fail to copy reg dump\n", __func__);