phy: marvell: Fix off by 1 limit checks
authorAndrew Goodbody <andrew.goodbody@linaro.org>
Wed, 6 Aug 2025 16:43:24 +0000 (17:43 +0100)
committerJerome Forissier <jerome.forissier@linaro.org>
Mon, 18 Aug 2025 12:08:57 +0000 (14:08 +0200)
The limit checks in get_speed_string and get_type_string are off by 1 as
they do not account for the maximum index into an array that can be used
is 1 less than the number of elements in that array. Adjust the limit
checks to allow for this.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Stefan Roese <stefan.roese@mailbox.org>
drivers/phy/marvell/comphy_core.c

index a666a4e..a412142 100644 (file)
@@ -28,7 +28,7 @@ static const char *get_speed_string(u32 speed)
                "10.3125 Gbps"
        };
 
-       if (speed < 0 || speed > COMPHY_SPEED_MAX)
+       if (speed < 0 || speed >= COMPHY_SPEED_MAX)
                return "invalid";
 
        return speed_strings[speed];
@@ -44,7 +44,7 @@ static const char *get_type_string(u32 type)
                "IGNORE"
        };
 
-       if (type < 0 || type > COMPHY_TYPE_MAX)
+       if (type < 0 || type >= COMPHY_TYPE_MAX)
                return "invalid";
 
        return type_strings[type];