pinctrl: qcom: sa8775: Limit check for array index not correct
authorAndrew Goodbody <andrew.goodbody@linaro.org>
Thu, 7 Aug 2025 11:20:01 +0000 (12:20 +0100)
committerCasey Connolly <casey.connolly@linaro.org>
Wed, 13 Aug 2025 13:18:49 +0000 (15:18 +0200)
In sa8775p_get_pin_name the limit check for the index into
msm_special_pins_data allows for more elements than exist. Add code to
ensure the array index remains in bounds.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Link: https://lore.kernel.org/r/20250807-pinctrl_qcom-v1-1-42fac6707fd5@linaro.org
Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
drivers/pinctrl/qcom/pinctrl-sa8775p.c

index cb2496f..d4acae1 100644 (file)
@@ -516,7 +516,9 @@ static const char *sa8775p_get_function_name(struct udevice *dev,
 static const char *sa8775p_get_pin_name(struct udevice *dev,
                                        unsigned int selector)
 {
-       if (selector >= 149 && selector <= 155)
+       if (selector > 153)
+               strcpy(pin_name, "unknown");
+       else if (selector >= 149)
                snprintf(pin_name, MAX_PIN_NAME_LEN,
                         msm_special_pins_data[selector - 149].name);
        else