summaryrefslogtreecommitdiff
path: root/drivers/media
diff options
context:
space:
mode:
authorAmey Asgaonkar <aasgaonkar@nvidia.com>2016-05-16 16:33:15 -0700
committerMatthew Pedro <mapedro@nvidia.com>2016-05-20 10:59:01 -0700
commit14359cb871606ffefa4ca2070b7e9ccb08dcd378 (patch)
treef7d4329077c0d401929e497b54e3e8a6a67b2539 /drivers/media
parent029cec3ad88a18829e816ad56ed5c7da06955199 (diff)
media: tegra: camera: Fix stack overread
We are not checking a variable which is user controlled. This can lead to reading of the stack data. Adding a check to ensure it is less than the max possible value of the variable. Bug 1763649 Change-Id: I395e882d030199bdd7684837906a9b5d60741650 Signed-off-by: Amey Asgaonkar <aasgaonkar@nvidia.com> Signed-off-by: Bibek Basu <bbasu@nvidia.com> Reviewed-on: http://git-master/r/1150943 GVS: Gerrit_Virtual_Submit Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/platform/tegra/cam_dev/virtual.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/media/platform/tegra/cam_dev/virtual.c b/drivers/media/platform/tegra/cam_dev/virtual.c
index ce20eae86b9f..e151068fa377 100644
--- a/drivers/media/platform/tegra/cam_dev/virtual.c
+++ b/drivers/media/platform/tegra/cam_dev/virtual.c
@@ -332,6 +332,12 @@ static int virtual_device_sanity_check(
__func__, dev_info->clk_num);
}
+ if (dev_info->reg_num >= VIRTUAL_DEV_MAX_REGULATORS) {
+ dev_err(dev, "%s too many regulators %u!\n",
+ __func__, dev_info->reg_num);
+ return -ENODEV;
+ }
+
*len = 0;
num = dev_info->reg_num;
nptr = &dev_info->reg_names[0];