From 4cafc886195a52a0610c46c79fbb700294e9f1aa Mon Sep 17 00:00:00 2001 From: Richard Spiegel Date: Mon, 20 Aug 2018 16:59:02 -0700 Subject: [PATCH] lib/gpio.c: Validate num_gpio In function _gpio_base3_value(), if num_gpio is 0 it'll cause the return of an undefined value, as no for loop will be executed. Assert that it's not 0. BUG=b:112253891 TEST=Build and boot grunt. Change-Id: I2b6537900fa41ebbee0171959f3ce236d360bc80 Signed-off-by: Richard Spiegel Reviewed-on: https://review.coreboot.org/28249 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- src/lib/gpio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/gpio.c b/src/lib/gpio.c index 0656dfb870..da748492fc 100644 --- a/src/lib/gpio.c +++ b/src/lib/gpio.c @@ -82,7 +82,8 @@ uint32_t _gpio_base3_value(const gpio_t gpio[], int num_gpio, int binary_first) int index; int temp; char value[32]; - assert(num_gpio <= 32); + if ((num_gpio > 32) && (num_gpio < 1)) + die("gpio_base3_value: Invalid number of GPIOs"); /* Enable internal pull up */ for (index = 0; index < num_gpio; ++index)