Translation of a pin name to a device+offset should fail if the offset
is larger than the number of pins in the GPIO bank.

Signed-off-by: Samuel Holland <sam...@sholland.org>
---

 drivers/gpio/gpio-uclass.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
index 8c77777dbe3..57e87960ee4 100644
--- a/drivers/gpio/gpio-uclass.c
+++ b/drivers/gpio/gpio-uclass.c
@@ -140,7 +140,8 @@ int dm_gpio_lookup_name(const char *name, struct gpio_desc 
*desc)
 
                if (!strncasecmp(name, uc_priv->bank_name, len)) {
                        if (!strict_strtoul(name + len, 10, &offset))
-                               break;
+                               if (offset < uc_priv->gpio_count)
+                                       break;
                }
 
                /*
-- 
2.31.1

Reply via email to