diff options
author | Jan Matyas <matyas@codasip.com> | 2021-04-23 10:47:17 +0200 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2021-06-13 19:58:28 +0100 |
commit | 64c2e03b23d9cadc1b919d38e902a079d015ddc6 (patch) | |
tree | 789350b475b723de7ff22c52cc1b1fefa2f96c2a /src/flash/nor/tms470.c | |
parent | f2958fc04bd879393fa743860478834e234f05d0 (diff) | |
download | riscv-openocd-64c2e03b23d9cadc1b919d38e902a079d015ddc6.zip riscv-openocd-64c2e03b23d9cadc1b919d38e902a079d015ddc6.tar.gz riscv-openocd-64c2e03b23d9cadc1b919d38e902a079d015ddc6.tar.bz2 |
flash/nor: improved API of flash_driver.info & fixed buffer overruns
1) The API of "info" callback in "struct flash_driver" has been
improved. Fixed buffers for strings
2) Removed the calls to snprintf() from the flash_driver.info
implementations. Many of them were used in an unsafe manner
(buffer overruns were possible).
Change-Id: I42ab8a8018d01f9af43c5ba49f650c3cb5d31dcb
Signed-off-by: Jan Matyas <matyas@codasip.com>
Reviewed-on: http://openocd.zylin.com/6182
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/flash/nor/tms470.c')
-rw-r--r-- | src/flash/nor/tms470.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/flash/nor/tms470.c b/src/flash/nor/tms470.c index 3004682..c5d74c3 100644 --- a/src/flash/nor/tms470.c +++ b/src/flash/nor/tms470.c @@ -1118,26 +1118,20 @@ static int tms470_protect_check(struct flash_bank *bank) /* ---------------------------------------------------------------------- */ -static int get_tms470_info(struct flash_bank *bank, char *buf, int buf_size) +static int get_tms470_info(struct flash_bank *bank, struct command_invocation *cmd) { - int used = 0; struct tms470_flash_bank *tms470_info = bank->driver_priv; if (!tms470_info->device_ident_reg) tms470_read_part_info(bank); if (!tms470_info->device_ident_reg) { - (void)snprintf(buf, buf_size, "Cannot identify target as a TMS470\n"); + command_print_sameline(cmd, "Cannot identify target as a TMS470\n"); return ERROR_FLASH_OPERATION_FAILED; } - used = - snprintf(buf, buf_size, "\ntms470 information: Chip is %s\n", - tms470_info->part_name); - buf += used; - buf_size -= used; - - snprintf(buf, buf_size, "Flash protection level 2 is %s\n", + command_print_sameline(cmd, "\ntms470 information: Chip is %s\n", tms470_info->part_name); + command_print_sameline(cmd, "Flash protection level 2 is %s\n", tms470_check_flash_unlocked(bank->target) == ERROR_OK ? "disabled" : "enabled"); return ERROR_OK; |