Dan Carpenter 115b7ac211 media: atomisp2: array underflow in ap1302_enum_frame_size()
The problem is this code from ap1302_enum_frame_size():

   738          int index = fse->index;
   739
   740          mutex_lock(&dev->input_lock);
   741          context = ap1302_get_context(sd);
   742          if (index >= dev->cntx_res[context].res_num) {
   743                  mutex_unlock(&dev->input_lock);
   744                  return -EINVAL;
   745          }
   746
   747          res_table = dev->cntx_res[context].res_table;
   748          fse->min_width = res_table[index].width;

"fse->index" is a u32 that come from the user.  We want negative values
of "index" to be treated as -EINVAL but they're not so we can read from
before the start of the res_table[] array.

I've fixed this by making "res_num" a u32.  I made "cur_res" a u32 as
well, just for consistency.

Fixes: a49d25364dfb ("staging/atomisp: Add support for the Intel IPU v2")

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>
2017-07-26 08:25:25 -04:00
..
2017-07-14 22:27:13 -07:00
2017-07-09 18:48:37 -07:00
2017-07-04 14:47:47 -07:00
2017-07-07 13:55:45 -07:00
2017-07-08 12:36:50 -07:00
2017-07-04 14:28:22 -07:00
2017-07-06 12:10:33 -07:00
2017-07-03 20:55:59 -07:00
2017-07-04 11:48:27 -07:00
2017-07-12 10:00:04 -07:00
2017-07-05 17:09:27 -07:00
2017-07-06 11:32:40 -07:00
2017-07-04 14:47:47 -07:00
2017-07-11 09:55:47 -07:00
2017-07-07 13:55:45 -07:00
2017-07-14 13:10:06 -07:00
2017-07-13 12:07:44 -07:00
2017-07-01 14:30:39 -07:00
2017-07-05 21:46:42 +02:00
2017-07-14 22:24:25 -07:00
2017-07-13 11:49:52 -07:00
2017-07-05 17:09:27 -07:00
2017-07-04 14:47:47 -07:00
2017-07-06 15:38:31 -07:00
2017-07-13 12:15:06 -07:00
2017-07-04 14:47:47 -07:00
2017-07-03 20:27:48 -07:00
2017-07-13 12:23:54 -07:00