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.goodb...@linaro.org>
---
 drivers/pinctrl/qcom/pinctrl-sa8775p.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/pinctrl/qcom/pinctrl-sa8775p.c 
b/drivers/pinctrl/qcom/pinctrl-sa8775p.c
index cb2496ff1fb..d4acae15d55 100644
--- a/drivers/pinctrl/qcom/pinctrl-sa8775p.c
+++ b/drivers/pinctrl/qcom/pinctrl-sa8775p.c
@@ -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

-- 
2.39.5

Reply via email to