summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-12-20 14:05:05 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-12-20 14:05:05 -0800
commit67e606e70e8376b8035e7a334803422cf8ab7814 (patch)
tree640a3c692349971d74aa7c065a5ad9b0045751de
parent7636267d38b3f3711639c5c7a786ea0097e889ba (diff)
parent6b7232dc9192dcf1ef9b887d76bd5ef88fe12572 (diff)
Merge "msm-3.18: drivers : added validation of input/output buffer sizes"
-rw-r--r--drivers/misc/qseecom.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/misc/qseecom.c b/drivers/misc/qseecom.c
index 26676a51d83c..a7b3663ad7fe 100644
--- a/drivers/misc/qseecom.c
+++ b/drivers/misc/qseecom.c
@@ -80,6 +80,9 @@
/* Encrypt/Decrypt Data Integrity Partition (DIP) for MDTP */
#define SCM_MDTP_CIPHER_DIP 0x01
+/* Maximum Allowed Size (128K) of Data Integrity Partition (DIP) for MDTP */
+#define MAX_DIP 0x20000
+
#define RPMB_SERVICE 0x2000
#define SSD_SERVICE 0x3000
@@ -6056,7 +6059,8 @@ static int qseecom_mdtp_cipher_dip(void __user *argp)
}
if (req.in_buf == NULL || req.out_buf == NULL ||
- req.in_buf_size == 0 || req.out_buf_size == 0 ||
+ req.in_buf_size == 0 || req.in_buf_size > MAX_DIP ||
+ req.out_buf_size == 0 || req.out_buf_size > MAX_DIP ||
req.direction > 1) {
pr_err("invalid parameters\n");
ret = -EINVAL;