mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 14:10:43 +00:00
gpio: Verify validity of pin offsets from device trees
Translation of an OF GPIO specifier should fail if the pin offset is larger than the number of pins in the GPIO bank. Signed-off-by: Samuel Holland <samuel@sholland.org> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
390ccffe07
commit
37c10bf7ef
1 changed files with 4 additions and 0 deletions
|
@ -189,10 +189,14 @@ int gpio_lookup_name(const char *name, struct udevice **devp,
|
|||
int gpio_xlate_offs_flags(struct udevice *dev, struct gpio_desc *desc,
|
||||
struct ofnode_phandle_args *args)
|
||||
{
|
||||
struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
|
||||
|
||||
if (args->args_count < 1)
|
||||
return -EINVAL;
|
||||
|
||||
desc->offset = args->args[0];
|
||||
if (desc->offset >= uc_priv->gpio_count)
|
||||
return -EINVAL;
|
||||
|
||||
if (args->args_count < 2)
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue