diff options
| author | Samuel Holland <[email protected]> | 2021-09-11 17:05:51 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2021-10-05 08:50:15 -0400 |
| commit | 390ccffe07c45a3ad584ee6199cc1e63d07981ee (patch) | |
| tree | 9d9e5ffbda7d377e6ee1d9a8d3a5c75fe2490b78 /drivers | |
| parent | c5b68ef8af3c2f515c1f5b8d63a69359a85d753b (diff) | |
gpio: Verify validity of pin offsets when looking up names
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 <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpio/gpio-uclass.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c index bb2f23241ed..45a7f8def4f 100644 --- a/drivers/gpio/gpio-uclass.c +++ b/drivers/gpio/gpio-uclass.c @@ -141,7 +141,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; } /* |
