[media] atmel-isc: fix off-by-one comparison and out of bounds read issue
authorColin Ian King <colin.king@canonical.com>
Tue, 7 Mar 2017 14:30:47 +0000 (11:30 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 5 Apr 2017 18:06:38 +0000 (15:06 -0300)
The are only HIST_ENTRIES worth of entries in  hist_entry however the
for-loop is iterating one too many times leasing to a read access off
the end off the array ctrls->hist_entry.  Fix this by iterating by
the correct number of times.

Detected by CoverityScan, CID#1415279 ("Out-of-bounds read")

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Hans Verkuil <hansverk@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/platform/atmel/atmel-isc.c

index b380a7d..7dacf8c 100644 (file)
@@ -1298,7 +1298,7 @@ static void isc_hist_count(struct isc_device *isc)
        regmap_bulk_read(regmap, ISC_HIS_ENTRY, hist_entry, HIST_ENTRIES);
 
        *hist_count = 0;
-       for (i = 0; i <= HIST_ENTRIES; i++)
+       for (i = 0; i < HIST_ENTRIES; i++)
                *hist_count += i * (*hist_entry++);
 }