summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zephyr/shim/src/gpio.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/zephyr/shim/src/gpio.c b/zephyr/shim/src/gpio.c
index 89f9a53451..ab10f08c5e 100644
--- a/zephyr/shim/src/gpio.c
+++ b/zephyr/shim/src/gpio.c
@@ -106,6 +106,9 @@ struct gpio_signal_callback gpio_interrupts[] = {
static struct gpio_signal_callback *
get_interrupt_from_signal(enum gpio_signal signal)
{
+ if (signal >= ARRAY_SIZE(configs))
+ return NULL;
+
for (size_t i = 0; i < ARRAY_SIZE(gpio_interrupts); i++) {
if (gpio_interrupts[i].signal == signal)
return &gpio_interrupts[i];
@@ -172,6 +175,9 @@ static int convert_from_zephyr_flags(const gpio_flags_t zephyr)
int gpio_get_default_flags(enum gpio_signal signal)
{
+ if (signal >= ARRAY_SIZE(configs))
+ return 0;
+
return convert_from_zephyr_flags(configs[signal].init_flags);
}