2017-11-07 17:32:46 -05:00
|
|
|
From 08a969c0e4c399df047c8055ac11a19e124500ed Mon Sep 17 00:00:00 2001
|
2017-10-29 01:48:53 -04:00
|
|
|
From: Zhen Kong <zkong@codeaurora.org>
|
|
|
|
Date: Tue, 31 Jan 2017 12:07:10 -0800
|
|
|
|
Subject: crypto: msm: check length before copying to buf in _debug_stats_read
|
|
|
|
|
|
|
|
Make sure that `len` is not larger than `count` before copying data
|
|
|
|
to userspace `buf` in _debug_stats_read().
|
|
|
|
|
|
|
|
Change-Id: Iafb7cfa3828653f8c28183c812797c3d9a183da1
|
|
|
|
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
|
|
|
|
---
|
|
|
|
drivers/crypto/msm/ota_crypto.c | 6 +++---
|
|
|
|
drivers/crypto/msm/qcedev.c | 4 ++--
|
|
|
|
drivers/crypto/msm/qcrypto.c | 6 +++---
|
|
|
|
3 files changed, 8 insertions(+), 8 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/drivers/crypto/msm/ota_crypto.c b/drivers/crypto/msm/ota_crypto.c
|
2017-11-07 17:32:46 -05:00
|
|
|
index 9b4a001..674913c 100644
|
2017-10-29 01:48:53 -04:00
|
|
|
--- a/drivers/crypto/msm/ota_crypto.c
|
|
|
|
+++ b/drivers/crypto/msm/ota_crypto.c
|
|
|
|
@@ -1,4 +1,4 @@
|
2017-11-07 17:32:46 -05:00
|
|
|
-/* Copyright (c) 2010-2014, The Linux Foundation. All rights reserved.
|
|
|
|
+/* Copyright (c) 2010-2014,2017 The Linux Foundation. All rights reserved.
|
2017-10-29 01:48:53 -04:00
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License version 2 and
|
2017-11-07 17:32:46 -05:00
|
|
|
@@ -880,8 +880,8 @@ static ssize_t _debug_stats_read(struct file *file, char __user *buf,
|
2017-10-29 01:48:53 -04:00
|
|
|
int len;
|
|
|
|
|
|
|
|
len = _disp_stats();
|
|
|
|
-
|
|
|
|
- rc = simple_read_from_buffer((void __user *) buf, len,
|
|
|
|
+ if (len <= count)
|
|
|
|
+ rc = simple_read_from_buffer((void __user *) buf, len,
|
|
|
|
ppos, (void *) _debug_read_buf, len);
|
|
|
|
|
|
|
|
return rc;
|
|
|
|
diff --git a/drivers/crypto/msm/qcedev.c b/drivers/crypto/msm/qcedev.c
|
|
|
|
index a629c62..5ce87a6e 100644
|
|
|
|
--- a/drivers/crypto/msm/qcedev.c
|
|
|
|
+++ b/drivers/crypto/msm/qcedev.c
|
|
|
|
@@ -1987,9 +1987,9 @@ static ssize_t _debug_stats_read(struct file *file, char __user *buf,
|
|
|
|
|
|
|
|
len = _disp_stats(qcedev);
|
|
|
|
|
|
|
|
- rc = simple_read_from_buffer((void __user *) buf, len,
|
|
|
|
+ if (len <= count)
|
|
|
|
+ rc = simple_read_from_buffer((void __user *) buf, len,
|
|
|
|
ppos, (void *) _debug_read_buf, len);
|
|
|
|
-
|
|
|
|
return rc;
|
|
|
|
}
|
|
|
|
|
|
|
|
diff --git a/drivers/crypto/msm/qcrypto.c b/drivers/crypto/msm/qcrypto.c
|
2017-11-07 17:32:46 -05:00
|
|
|
index a898dbc..893b0b6 100644
|
2017-10-29 01:48:53 -04:00
|
|
|
--- a/drivers/crypto/msm/qcrypto.c
|
|
|
|
+++ b/drivers/crypto/msm/qcrypto.c
|
|
|
|
@@ -1,6 +1,6 @@
|
|
|
|
/* Qualcomm Crypto driver
|
|
|
|
*
|
|
|
|
- * Copyright (c) 2010-2016, The Linux Foundation. All rights reserved.
|
|
|
|
+ * Copyright (c) 2010-2017, The Linux Foundation. All rights reserved.
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License version 2 and
|
2017-11-07 17:32:46 -05:00
|
|
|
@@ -5419,9 +5419,9 @@ static ssize_t _debug_stats_read(struct file *file, char __user *buf,
|
2017-10-29 01:48:53 -04:00
|
|
|
|
|
|
|
len = _disp_stats(qcrypto);
|
|
|
|
|
|
|
|
- rc = simple_read_from_buffer((void __user *) buf, len,
|
|
|
|
+ if (len <= count)
|
|
|
|
+ rc = simple_read_from_buffer((void __user *) buf, len,
|
|
|
|
ppos, (void *) _debug_read_buf, len);
|
|
|
|
-
|
|
|
|
return rc;
|
|
|
|
}
|
|
|
|
|
|
|
|
--
|
|
|
|
cgit v1.1
|
|
|
|
|