diff options
author | Raúl Sanchez Siles <rasasi78@gmail.com> | 2021-03-13 01:09:01 +0100 |
---|---|---|
committer | Tomas Vanek <vanekt@fbl.cz> | 2021-03-16 08:51:37 +0000 |
commit | 8d6f7c92239a54ce77d7a268f51b49445470fe00 (patch) | |
tree | bbf5e8a495e7889320e08e0140cbdbbcfc869444 /src/flash | |
parent | 4c00f96fc2e32397da5b46ca3428a992333548da (diff) | |
download | riscv-openocd-8d6f7c92239a54ce77d7a268f51b49445470fe00.zip riscv-openocd-8d6f7c92239a54ce77d7a268f51b49445470fe00.tar.gz riscv-openocd-8d6f7c92239a54ce77d7a268f51b49445470fe00.tar.bz2 |
flash/stm32l4x: zero init stm32l4_flash_bank struct on flash bank initialization
This is specially needed when, in the probe routine, device is not
found among the stm32l4_parts. In this case, the stm32l4_flash_bank->part_info
is undefined and inadvertentanly used afterwards:
part_info = stm32l4_info->part_info;
If the stm32l4_flash_bank is zero init, the probe routine checks for
the validity of the part_info field in the previous struct and correctly
detects the unsupported (or not found) condition, raising an error
rather than a SIGSEGV
Change-Id: I7d9d669fb3fa7f8f0903acd60046966b4acb0031
Signed-off-by: Raúl Sánchez Siles <rasasi78@gmail.com>
Reviewed-on: http://openocd.zylin.com/6103
Tested-by: jenkins
Reviewed-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com>
Reviewed-by: Oleksij Rempel <linux@rempel-privat.de>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/flash')
-rw-r--r-- | src/flash/nor/stm32l4x.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/flash/nor/stm32l4x.c b/src/flash/nor/stm32l4x.c index 55a8d8f..89c5ac3 100644 --- a/src/flash/nor/stm32l4x.c +++ b/src/flash/nor/stm32l4x.c @@ -439,7 +439,7 @@ FLASH_BANK_COMMAND_HANDLER(stm32l4_flash_bank_command) if (CMD_ARGC < 6) return ERROR_COMMAND_SYNTAX_ERROR; - stm32l4_info = malloc(sizeof(struct stm32l4_flash_bank)); + stm32l4_info = calloc(1, sizeof(struct stm32l4_flash_bank)); if (!stm32l4_info) return ERROR_FAIL; /* Checkme: What better error to use?*/ bank->driver_priv = stm32l4_info; |