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 <richard.spiegel@silverbackltd.com>
Reviewed-on: https://review.coreboot.org/28249
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
Richard Spiegel 2018-08-20 16:59:02 -07:00 committed by Martin Roth
parent 78f2343aa2
commit 4cafc88619
1 changed files with 2 additions and 1 deletions

View File

@ -82,7 +82,8 @@ uint32_t _gpio_base3_value(const gpio_t gpio[], int num_gpio, int binary_first)
int index; int index;
int temp; int temp;
char value[32]; 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 */ /* Enable internal pull up */
for (index = 0; index < num_gpio; ++index) for (index = 0; index < num_gpio; ++index)