aboutsummaryrefslogtreecommitdiff
path: root/src/flash/nor/tcl.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/tcl.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/tcl.c')
-rw-r--r--src/flash/nor/tcl.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c
index 3f737ac..199bf2d 100644
--- a/src/flash/nor/tcl.c
+++ b/src/flash/nor/tcl.c
@@ -89,7 +89,6 @@ COMMAND_HANDLER(handle_flash_info_command)
return retval;
if (p != NULL) {
- char buf[1024];
int num_blocks;
struct flash_sector *block_array;
@@ -150,10 +149,10 @@ COMMAND_HANDLER(handle_flash_info_command)
}
if (p->driver->info != NULL) {
- retval = p->driver->info(p, buf, sizeof(buf));
- if (retval == ERROR_OK)
- command_print(CMD, "%s", buf);
- else
+ /* Let the flash driver print extra custom info */
+ retval = p->driver->info(p, CMD);
+ command_print_sameline(CMD, "\n");
+ if (retval != ERROR_OK)
LOG_ERROR("error retrieving flash info");
}
}