flash/nor: improved API of flash_driver.info & fixed buffer overruns
[fw/openocd] / src / flash / nor / stm32lx.c
index b014d097dc92fbe221f3163699813a71b6c7a1c1..1ea1b1d0e9dc4e4178e9334cc76aa61e36f34661 100644 (file)
@@ -870,7 +870,7 @@ static int stm32lx_auto_probe(struct flash_bank *bank)
 }
 
 /* This method must return a string displaying information about the bank */
-static int stm32lx_get_info(struct flash_bank *bank, char *buf, int buf_size)
+static int stm32lx_get_info(struct flash_bank *bank, struct command_invocation *cmd)
 {
        struct stm32lx_flash_bank *stm32lx_info = bank->driver_priv;
        const struct stm32lx_part_info *info = &stm32lx_info->part_info;
@@ -880,8 +880,7 @@ static int stm32lx_get_info(struct flash_bank *bank, char *buf, int buf_size)
        if (!stm32lx_info->probed) {
                int retval = stm32lx_probe(bank);
                if (retval != ERROR_OK) {
-                       snprintf(buf, buf_size,
-                               "Unable to find bank information.");
+                       command_print_sameline(cmd, "Unable to find bank information.");
                        return retval;
                }
        }
@@ -891,13 +890,9 @@ static int stm32lx_get_info(struct flash_bank *bank, char *buf, int buf_size)
                        rev_str = info->revs[i].str;
 
        if (rev_str != NULL) {
-               snprintf(buf, buf_size,
-                       "%s - Rev: %s",
-                       info->device_str, rev_str);
+               command_print_sameline(cmd, "%s - Rev: %s", info->device_str, rev_str);
        } else {
-               snprintf(buf, buf_size,
-                       "%s - Rev: unknown (0x%04x)",
-                       info->device_str, rev_id);
+               command_print_sameline(cmd, "%s - Rev: unknown (0x%04x)", info->device_str, rev_id);
        }
 
        return ERROR_OK;