From: Colin Ian King <[email protected]>

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 <[email protected]>
---
 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

Reply via email to