diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2018-07-03 21:10:21 -0700 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-07-05 08:14:52 +0200 |
commit | c3e15bc8b7860aa5025b037ef4d566ca4a4e1d95 (patch) | |
tree | 9b594a18f7c0136aa96efaac16afc83601927611 /drivers/nvmem | |
parent | 21d7093d4d4549b1fbdca9501ff26607a19794c7 (diff) | |
download | barebox-c3e15bc8b7860aa5025b037ef4d566ca4a4e1d95.tar.gz barebox-c3e15bc8b7860aa5025b037ef4d566ca4a4e1d95.tar.xz |
nvmem: rave-sp-eeprom: Remove VLA usage
This is a backport of patch [1] by Kees Cook
[1] https://lkml.kernel.org/r/20180620182600.GA24297@beast
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/nvmem')
-rw-r--r-- | drivers/nvmem/rave-sp-eeprom.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/nvmem/rave-sp-eeprom.c b/drivers/nvmem/rave-sp-eeprom.c index 5fd429f16a..ff91f39f73 100644 --- a/drivers/nvmem/rave-sp-eeprom.c +++ b/drivers/nvmem/rave-sp-eeprom.c @@ -55,6 +55,7 @@ enum rave_sp_eeprom_header_size { RAVE_SP_EEPROM_HEADER_SMALL = 4U, RAVE_SP_EEPROM_HEADER_BIG = 5U, }; +#define RAVE_SP_EEPROM_HEADER_MAX RAVE_SP_EEPROM_HEADER_BIG #define RAVE_SP_EEPROM_PAGE_SIZE 32U @@ -115,9 +116,12 @@ static int rave_sp_eeprom_io(struct rave_sp_eeprom *eeprom, const unsigned int rsp_size = is_write ? sizeof(*page) - sizeof(page->data) : sizeof(*page); unsigned int offset = 0; - u8 cmd[cmd_size]; + u8 cmd[RAVE_SP_EEPROM_HEADER_MAX + sizeof(page->data)]; int ret; + if (WARN_ON(cmd_size > sizeof(cmd))) + return -EINVAL; + cmd[offset++] = eeprom->address; cmd[offset++] = 0; cmd[offset++] = type; |