aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2023-03-10 11:50:08 +0100
committerAntonio Borneo <borneo.antonio@gmail.com>2023-03-25 18:08:18 +0000
commit86827a961a22815ebd5fa367468ca7444f0ee2e1 (patch)
tree7fa5f6242026b1eaaeddfd654a51eb3c0d42c4bf
parent415715d91a11ea4ed6db3a1fd760741a22b6e098 (diff)
downloadriscv-openocd-86827a961a22815ebd5fa367468ca7444f0ee2e1.zip
riscv-openocd-86827a961a22815ebd5fa367468ca7444f0ee2e1.tar.gz
riscv-openocd-86827a961a22815ebd5fa367468ca7444f0ee2e1.tar.bz2
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>
-rw-r--r--src/svf/svf.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/svf/svf.c b/src/svf/svf.c
index 7195880..05fb21d 100644
--- a/src/svf/svf.c
+++ b/src/svf/svf.c
@@ -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);