|
From: openocd-gerrit <ope...@us...> - 2023-03-25 18:09:13
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Main OpenOCD repository".
The branch, master has been updated
via f8631c3650c0e3a3c3e16726f1ca3748d163cc69 (commit)
from 86827a961a22815ebd5fa367468ca7444f0ee2e1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f8631c3650c0e3a3c3e16726f1ca3748d163cc69
Author: Antonio Borneo <bor...@gm...>
Date: Fri Mar 10 12:01:03 2023 +0100
svf: fix memory leak on error during command execution
If svf_set_padding() returns error, jump to free_all label to
prevent any memory leak.
Propagate the error reported by svf_set_padding() instead of
overwriting it.
Use command_print() instead of LOG_ERROR() for command output.
Change-Id: I61fd89cad10652f2f9ef1f9d48a040e35253c3d4
Signed-off-by: Antonio Borneo <bor...@gm...>
Reviewed-on: https://review.openocd.org/c/openocd/+/7533
Tested-by: jenkins
Reviewed-by: Tomas Vanek <va...@fb...>
diff --git a/src/svf/svf.c b/src/svf/svf.c
index 05fb21d63..2a1331280 100644
--- a/src/svf/svf.c
+++ b/src/svf/svf.c
@@ -473,27 +473,31 @@ COMMAND_HANDLER(handle_svf_command)
}
/* HDR %d TDI (0) */
- if (svf_set_padding(&svf_para.hdr_para, header_dr_len, 0) != ERROR_OK) {
- LOG_ERROR("failed to set data header");
- return ERROR_FAIL;
+ ret = svf_set_padding(&svf_para.hdr_para, header_dr_len, 0);
+ if (ret != ERROR_OK) {
+ command_print(CMD, "failed to set data header");
+ goto free_all;
}
/* HIR %d TDI (0xFF) */
- if (svf_set_padding(&svf_para.hir_para, header_ir_len, 0xFF) != ERROR_OK) {
- LOG_ERROR("failed to set instruction header");
- return ERROR_FAIL;
+ ret = svf_set_padding(&svf_para.hir_para, header_ir_len, 0xFF);
+ if (ret != ERROR_OK) {
+ command_print(CMD, "failed to set instruction header");
+ goto free_all;
}
/* TDR %d TDI (0) */
- if (svf_set_padding(&svf_para.tdr_para, trailer_dr_len, 0) != ERROR_OK) {
- LOG_ERROR("failed to set data trailer");
- return ERROR_FAIL;
+ ret = svf_set_padding(&svf_para.tdr_para, trailer_dr_len, 0);
+ if (ret != ERROR_OK) {
+ command_print(CMD, "failed to set data trailer");
+ goto free_all;
}
/* TIR %d TDI (0xFF) */
- if (svf_set_padding(&svf_para.tir_para, trailer_ir_len, 0xFF) != ERROR_OK) {
- LOG_ERROR("failed to set instruction trailer");
- return ERROR_FAIL;
+ ret = svf_set_padding(&svf_para.tir_para, trailer_ir_len, 0xFF);
+ if (ret != ERROR_OK) {
+ command_print(CMD, "failed to set instruction trailer");
+ goto free_all;
}
}
-----------------------------------------------------------------------
Summary of changes:
src/svf/svf.c | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
hooks/post-receive
--
Main OpenOCD repository
|