X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fsvf%2Fsvf.c;h=759ba5263824bfbd5a134cc1e0f46ffe92300c7f;hb=8536306b6ebcee8249376734d64db40a07916c9d;hp=5f95b0c6072295f63a771d770745d44fa716d8f4;hpb=d0e763ac7ef6aa17b17bd00ccdfbccfb4eacda69;p=fw%2Fopenocd diff --git a/src/svf/svf.c b/src/svf/svf.c index 5f95b0c60..759ba5263 100644 --- a/src/svf/svf.c +++ b/src/svf/svf.c @@ -361,7 +361,7 @@ COMMAND_HANDLER(handle_svf_command) #define SVF_MAX_NUM_OF_OPTIONS 5 int command_num = 0; int ret = ERROR_OK; - long long time_measure_ms; + int64_t time_measure_ms; int time_measure_s, time_measure_m; /* use NULL to indicate a "plain" svf file which accounts for @@ -382,7 +382,7 @@ COMMAND_HANDLER(handle_svf_command) if (strcmp(CMD_ARGV[i], "-tap") == 0) { tap = jtag_tap_by_string(CMD_ARGV[i+1]); if (!tap) { - command_print(CMD_CTX, "Tap: %s unknown", CMD_ARGV[i+1]); + command_print(CMD, "Tap: %s unknown", CMD_ARGV[i+1]); return ERROR_FAIL; } i++; @@ -401,7 +401,7 @@ COMMAND_HANDLER(handle_svf_command) svf_fd = fopen(CMD_ARGV[i], "r"); if (svf_fd == NULL) { int err = errno; - command_print(CMD_CTX, "open(\"%s\"): %s", CMD_ARGV[i], strerror(err)); + command_print(CMD, "open(\"%s\"): %s", CMD_ARGV[i], strerror(err)); /* no need to free anything now */ return ERROR_COMMAND_SYNTAX_ERROR; } else @@ -534,8 +534,8 @@ COMMAND_HANDLER(handle_svf_command) time_measure_m = time_measure_s / 60; time_measure_s %= 60; if (time_measure_ms < 1000) - command_print(CMD_CTX, - "\r\nTime used: %dm%ds%lldms ", + command_print(CMD, + "\r\nTime used: %dm%ds%" PRId64 "ms ", time_measure_m, time_measure_s, time_measure_ms); @@ -579,13 +579,13 @@ free_all: svf_free_xxd_para(&svf_para.sir_para); if (ERROR_OK == ret) - command_print(CMD_CTX, + command_print(CMD, "svf file programmed %s for %d commands with %d errors", (svf_ignore_error > 1) ? "unsuccessfully" : "successfully", command_num, (svf_ignore_error > 1) ? (svf_ignore_error - 1) : 0); else - command_print(CMD_CTX, "svf file programmed failed"); + command_print(CMD, "svf file programmed failed"); svf_ignore_error = 0; return ret; @@ -661,11 +661,13 @@ static int svf_read_command_from_file(FILE *fd) if (svf_getline(&svf_read_line, &svf_read_line_size, svf_fd) <= 0) return ERROR_FAIL; i = -1; + /* fallthrough */ case '\r': slash = 0; /* Don't save '\r' and '\n' if no data is parsed */ if (!cmd_pos) break; + /* fallthrough */ default: /* The parsing code currently expects a space * before parentheses -- "TDI (123)". Also a @@ -739,6 +741,9 @@ parse_char: pos++; } + if (num == 0) + return ERROR_FAIL; + *num_of_argu = num; return ERROR_OK; @@ -1311,7 +1316,7 @@ XXR_common: * SEC]] [ENDSTATE end_state] */ /* RUNTEST [run_state] min_time SEC [MAXIMUM max_time SEC] [ENDSTATE * end_state] */ - if ((num_of_argu < 3) && (num_of_argu > 11)) { + if ((num_of_argu < 3) || (num_of_argu > 11)) { LOG_ERROR("invalid parameter of %s", argus[0]); return ERROR_FAIL; }