svf: fix leaking file descriptor
The file descriptor svf_fd is not closed on command error, thus leaking memory. Close svf_fd on errors. While there, properly initialize svf_fd using NULL instead of 0. Change-Id: I5efe9ce576a3a50588b30000222665e26161dfdc Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7532 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-by: <kai.schmitz@advantest.com>
This commit is contained in:
parent
415715d91a
commit
86827a961a
|
@ -377,6 +377,9 @@ COMMAND_HANDLER(handle_svf_command)
|
|||
svf_addcycles = atoi(CMD_ARGV[i + 1]);
|
||||
if (svf_addcycles > SVF_MAX_ADDCYCLES) {
|
||||
command_print(CMD, "addcycles: %s out of range", CMD_ARGV[i + 1]);
|
||||
if (svf_fd)
|
||||
fclose(svf_fd);
|
||||
svf_fd = NULL;
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
i++;
|
||||
|
@ -384,6 +387,9 @@ COMMAND_HANDLER(handle_svf_command)
|
|||
tap = jtag_tap_by_string(CMD_ARGV[i+1]);
|
||||
if (!tap) {
|
||||
command_print(CMD, "Tap: %s unknown", CMD_ARGV[i+1]);
|
||||
if (svf_fd)
|
||||
fclose(svf_fd);
|
||||
svf_fd = NULL;
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
i++;
|
||||
|
@ -546,7 +552,7 @@ COMMAND_HANDLER(handle_svf_command)
|
|||
free_all:
|
||||
|
||||
fclose(svf_fd);
|
||||
svf_fd = 0;
|
||||
svf_fd = NULL;
|
||||
|
||||
/* free buffers */
|
||||
free(svf_command_buffer);
|
||||
|
|
Loading…
Reference in New Issue