On Fri, May 01, 2020 at 05:51:18PM +0200, Oscar Carter wrote: > Check the return value of gasket_get_bar_index function as it can return > a negative one (-EINVAL). If this happens, a negative index is used in > the "gasket_dev->bar_data" array. > > Addresses-Coverity-ID: 1438542 ("Negative array index read") > Fixes: 9a69f5087ccc2 ("drivers/staging: Gasket driver framework + Apex driver") > Signed-off-by: Oscar Carter <oscar.carter@xxxxxxx> > --- > drivers/staging/gasket/gasket_core.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/staging/gasket/gasket_core.c b/drivers/staging/gasket/gasket_core.c > index 8e0575fcb4c8..67325fbaf760 100644 > --- a/drivers/staging/gasket/gasket_core.c > +++ b/drivers/staging/gasket/gasket_core.c > @@ -925,6 +925,10 @@ do_map_region(const struct gasket_dev *gasket_dev, struct vm_area_struct *vma, > gasket_get_bar_index(gasket_dev, > (vma->vm_pgoff << PAGE_SHIFT) + > driver_desc->legacy_mmap_address_offset); > + > + if (bar_index < 0) > + return DO_MAP_REGION_INVALID; > + > phys_base = gasket_dev->bar_data[bar_index].phys_base + phys_offset; > while (mapped_bytes < map_length) { > /* > -- > 2.20.1 > Reviewed-by: Richard Yeh <rcy@xxxxxxxxxx> _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel