From: Colin Ian King <colin.king@xxxxxxxxxxxxx> Currently maxes_table[index] is accessed before index is checked to be out of range. Fix this by performing the out of range check on index first. Also don't check against a hard-coded maximum value but use the array size instead. Detected by static analysis with cppcheck: "Array index 'index' is used before limits check" Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx> --- drivers/char/agp/backend.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c index 38ffb281df97..4e07f01833a2 100644 --- a/drivers/char/agp/backend.c +++ b/drivers/char/agp/backend.c @@ -121,7 +121,8 @@ static int agp_find_max(void) #endif index = 1; - while ((memory > maxes_table[index].mem) && (index < 8)) + while ((index < ARRAY_SIZE(maxes_table) - 1) && + (memory > maxes_table[index].mem)) index++; result = maxes_table[index - 1].agp + -- 2.17.1