summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2020-11-11 11:04:45 -0700
committerCommit Bot <commit-bot@chromium.org>2020-11-11 19:26:14 +0000
commitc0fd9b31c55a9b7648ebad21c2584e8201b7057f (patch)
tree00ebe072a44d7fd394a4c1292d083c1d40daddc8
parentf72245e58348d084c7045c6a5304ddf96f8b6e4b (diff)
downloadchrome-ec-c0fd9b31c55a9b7648ebad21c2584e8201b7057f.tar.gz
zephyr: bounds check remaining gpio shim functions
I missed a few bound checks in the gpio shim. Add a bound check to all remaining gpio shim functions that need it. BRANCH=none BUG=b:172512307 TEST=volteer, posix-ec, and test/app/ec all build without warnings Signed-off-by: Jett Rink <jettrink@chromium.org> Change-Id: Id915532b83e1621c86253fe86137034751a4da6d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2532683 Commit-Queue: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
-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);
}