aboutsummaryrefslogtreecommitdiff
path: root/src/flash/nor/tms470.c
diff options
context:
space:
mode:
authorJan Matyas <matyas@codasip.com>2021-04-23 10:47:17 +0200
committerAntonio Borneo <borneo.antonio@gmail.com>2021-06-13 19:58:28 +0100
commit64c2e03b23d9cadc1b919d38e902a079d015ddc6 (patch)
tree789350b475b723de7ff22c52cc1b1fefa2f96c2a /src/flash/nor/tms470.c
parentf2958fc04bd879393fa743860478834e234f05d0 (diff)
downloadriscv-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.c14
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;