aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/atomisp/i2c/ov2722.h
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2017-07-17 04:58:54 -0300
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2017-07-26 05:46:42 -0400
commitf3aa68405d907cdec852078d73a200608d5aa473 (patch)
treef73ec61f48398d009de864cad07aa9d7e353eb5e /drivers/staging/media/atomisp/i2c/ov2722.h
parentmedia: lirc: LIRC_GET_REC_RESOLUTION should return microseconds (diff)
downloadlinux-dev-f3aa68405d907cdec852078d73a200608d5aa473.tar.xz
linux-dev-f3aa68405d907cdec852078d73a200608d5aa473.zip
media: staging: atomisp: array underflow in ioctl
I noticed an array underflow in ov5693_enum_frame_size(). The code looks like this: int index = fse->index; if (index >= N_RES) retur -EINVAL; fse->index is a u32 that comes from the user. We want negative values to be counted as -EINVAL but they aren't. There are several ways to fix this but I feel like the best fix for future proofing is to change the type of N_RES from int to unsigned long to make it the same as if we were comparing against ARRAY_SIZE(). Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/staging/media/atomisp/i2c/ov2722.h')
-rw-r--r--drivers/staging/media/atomisp/i2c/ov2722.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/media/atomisp/i2c/ov2722.h b/drivers/staging/media/atomisp/i2c/ov2722.h
index b0d40965d89e..73ecb1679718 100644
--- a/drivers/staging/media/atomisp/i2c/ov2722.h
+++ b/drivers/staging/media/atomisp/i2c/ov2722.h
@@ -1263,5 +1263,5 @@ struct ov2722_resolution ov2722_res_video[] = {
#define N_RES_VIDEO (ARRAY_SIZE(ov2722_res_video))
static struct ov2722_resolution *ov2722_res = ov2722_res_preview;
-static int N_RES = N_RES_PREVIEW;
+static unsigned long N_RES = N_RES_PREVIEW;
#endif