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/tcl.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/tcl.c')
-rw-r--r-- | src/flash/nor/tcl.c | 9 |
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"); } } |