drivers/spi/spi_flash.c: Check input parameter

In procedure spi_flash_cmd_erase(), parameter "len" is not validated and
could lead to the return of an invalid (non-initialized) value. Validate
the parameter early on.

BUG=b:112253891
TEST=Build and boot grunt.

Change-Id: I0b5129a15c9e0ea45f4dba4ab0729196cb64699b
Signed-off-by: Richard Spiegel <richard.spiegel@silverbackltd.com>
Reviewed-on: https://review.coreboot.org/27952
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-07 16:41:02 -07:00 committed by Martin Roth
parent 5e9785d6e4
commit d87a9b8e67
1 changed files with 4 additions and 0 deletions

View File

@ -206,6 +206,10 @@ int spi_flash_cmd_erase(const struct spi_flash *flash, u32 offset, size_t len)
printk(BIOS_WARNING, "SF: Erase offset/length not multiple of erase size\n"); printk(BIOS_WARNING, "SF: Erase offset/length not multiple of erase size\n");
return -1; return -1;
} }
if (len == 0) {
printk(BIOS_WARNING, "SF: Erase length cannot be 0\n");
return -1;
}
cmd[0] = flash->erase_cmd; cmd[0] = flash->erase_cmd;
start = offset; start = offset;